我在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
循环,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;
}
如果你想更具声明性地说明你的值是什么,你可以在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
(
是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;
}