L oop список с кортежем C# - PullRequest
       0

L oop список с кортежем C#

2 голосов
/ 06 марта 2020

У меня есть список в C#, называемый MyList:

List<Tuple<string, int, int>> MyList= new List<Tuple<string, int, int>>() 
        {
           Tuple.Create("Cars", 22, 3),
           Tuple.Create("Cars", 28, 5),
           Tuple.Create("Planes", 33, 6)
        };

Я хочу, чтобы l oop прошел по всему списку в том же порядке, в котором я его заполнил, и смогу получить значения по одному для каждого элемента списка, например Cars, 22, 3. Как я могу это сделать? Я думаю, мне нужно как-то использовать ForEach.

Ответы [ 2 ]

2 голосов
/ 06 марта 2020

Вы можете использовать простые foreach l oop для этого, Item1, Item2 и Item3 представляют безымянные элементы кортежа с соответствующими типами

foreach (var item in MyList)
{
    string name = item.Item1;
    int value = item.Item2;
    int something = item.Item3;
}

Вы также можете переключиться на именованные кортежи , которые доступны с C# 7. Они более читабельны и позволяют определить произвольное имя для элемента кортежа и использовать деконструкцию

var MyList = new List<(string name, int value, int someting)>()
{
    ("Cars", 22, 3),
    ("Cars", 28, 5),
    ("Planes", 33, 6)
};

foreach (var item in MyList)
{
    var name = item.name;
    var value = item.value;
}
1 голос
/ 06 марта 2020

Это простое для понимания и простое решение, которое поможет вам.
Вы можете использовать for l oop.

  • Item1 (string),
  • Item2 (int),
  • Item3 (int)

- это Tuple Items в порядке и в имеющемся формате поместил их.

И код ниже это loop.

for (int i = 0; i < MyList.Count; i++)
{
     string item1 = MyList[i].Item1;
     int item2 = MyList[i].Item2;
     int item3 = MyList[i].Item3;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...