Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用元组C循环列表#_C#_.net_List_Tuples - Fatal编程技术网

C# 使用元组C循环列表#

C# 使用元组C循环列表#,c#,.net,list,tuples,C#,.net,List,Tuples,我在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)

我在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)
        };
List MyList=new List()
{
Tuple.Create(“Cars”,22,3),
Tuple.Create(“Cars”,28,5),
Tuple.Create(“平面”,33,6)
};

我想按照上面填写的顺序循环浏览整个列表,并能够逐个获得每个列表项的值,如
Cars,22,3
。我该怎么做?我想我必须以某种方式使用
ForEach

你可以使用简单的
ForEach
循环,
Item1
Item2
Item3
表示具有相应类型的未命名元组项

foreach(MyList中的变量项)
{
字符串名称=item.Item1;
int值=item.Item2;
int something=item.Item3;
}
您也可以切换到,可从C#7获得。它们更具可读性,允许为元组项定义自定义名称并使用解构

var MyList=new List()
{
(“汽车”,22,3),
(“汽车”,28,5),
(“飞机”,33、6)
};
foreach(MyList中的var项)
{
var name=item.name;
var值=项目价值;
}

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

  • 项目1(
    字符串
  • 项目2(
    int
  • 项目3(
    int
元组
是否按照您放置它们的顺序和格式

下面的代码是
循环

for (int i = 0; i < MyList.Count; i++)
{
     string item1 = MyList[i].Item1;
     int item2 = MyList[i].Item2;
     int item3 = MyList[i].Item3;
}
for(int i=0;i
您通常会编写一个循环,以便在集合上循环,是的。你尝试过什么,但什么不起作用?循环确实是你需要的!你可以切换到命名元组,它更清晰易读。我知道我需要一个循环。但我不知道怎么写。这就是我所做的:''MyList.ForEach(Tuple-Tuple){}`@KGB91这不是一个循环。这是试图用不正确的lambda语法使用
ForEach
方法
foreach(MyList中的var…){…}
是一个循环,它可以工作,但我得到
当使用命名元组时,名称空间“System”中不存在类型或名称空间名称“ValueTuple”。@KGB91可从C#7和.NET 4.6.1获得。您可以尝试安装软件包,如果您没有从box@KGB91,你可以用我更简单的答案。是的,但是用下面的代码填充元组更容易:)