使用元组循环列表 C#

KGB*_*B91 7 .net c# tuples list

我有一个 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)
        };
Run Code Online (Sandbox Code Playgroud)

我想以与上面填充相同的顺序循环遍历整个列表,并能够一一获取每个列表项的值,例如Cars, 22, 3. 我怎么做?我想我必须以ForEach某种方式使用。

Pav*_*ski 10

您可以使用简单的foreach循环,Item1Item2表示Item3具有相应类型的未命名元组项

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

您还可以切换到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;
}
Run Code Online (Sandbox Code Playgroud)