使用元组C#循环列表



我在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)
        };

我希望以与上面填写的顺序相同的顺序循环整个列表,并能够逐个获得每个列表项的值,如Cars, 22, 3。我该怎么做?我想我不得不以某种方式使用ForEach

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

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;
}

如果你想更具声明性地说明你的值是什么,你可以在foreach循环中显式地设置它们,如下所示:

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)
        };    
foreach ((string type, int fuel, int amount) vehicles in myList) {
        string item1 = vehicles.type;
        int item2 = vehicles.fuel;
        int item3 = vehicles.amount;
    }

这是一个易于理解且简单的解决方案,将对您有所帮助
您可以使用for循环。

  • 第1项(string(
  • 项目2(int(
  • 第3项(int(

TupleItems,按您放置它们的顺序和格式排列。

下面的代码是loop

for (int i = 0; i < MyList.Count; i++)
{
     string item1 = MyList[i].Item1;
     int item2 = MyList[i].Item2;
     int item3 = MyList[i].Item3;
}

最新更新