Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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# 使用LINQ转换具有索引的for循环_C#_Linq - Fatal编程技术网

C# 使用LINQ转换具有索引的for循环

C# 使用LINQ转换具有索引的for循环,c#,linq,C#,Linq,我是C语言新手,我已经开始学习LINQ了 所以我只想用linq转换代码。有什么办法吗。当前的实现并不时尚 var list = new List<int>(); for (int index = 0; index < contentList.Count; index++) { list.Add(MyClass.GetCorrespondence(module, index)); } return list; 如果您非常想与Linq合作,那么您可以尝试: list.Ad

我是C语言新手,我已经开始学习LINQ了 所以我只想用linq转换代码。有什么办法吗。当前的实现并不时尚

var list = new List<int>();
for (int index = 0; index < contentList.Count; index++)
{
    list.Add(MyClass.GetCorrespondence(module, index));
}
return list;

如果您非常想与Linq合作,那么您可以尝试:

list.AddRange(Enumerable.Range(0, contentList.Count).Select(index => MyClass.GetCorrespondence(module, index)))
或:


如果您非常想与Linq合作,那么您可以尝试:

list.AddRange(Enumerable.Range(0, contentList.Count).Select(index => MyClass.GetCorrespondence(module, index)))
或:

这种方法的工作原理是:

var result= contentList.Select((paramter,index)=>MyClass.GetCorrespondence(module,index)).ToList();
这种方法的工作原理是:

var result= contentList.Select((paramter,index)=>MyClass.GetCorrespondence(module,index)).ToList();
你可以这样写:

var list = contentList.Select((_, i) => MyClass.GetCorrespondence(module, i)).ToList();
还是像这样

var list = Enumerable.Range(0,contentList.Count).Select(i => MyClass.GetCorrespondence(module, i)).ToList();
但是,老实说,也不要这样做!您的代码是完全可读的

你可以这样写:

var list = contentList.Select((_, i) => MyClass.GetCorrespondence(module, i)).ToList();
还是像这样

var list = Enumerable.Range(0,contentList.Count).Select(i => MyClass.GetCorrespondence(module, i)).ToList();

但是,老实说,也不要这样做!您的代码是完全可读的

如果必须为此使用LINQ,则可以使用重载,通过合并元素的索引将序列中的每个元素投影到新形式中。e、 g:

list.AddRange(contentList.Select((c, index) => MyClass.GetCorrespondence(c, index));

如果必须为此使用LINQ,那么可以使用重载,通过合并元素的索引将序列的每个元素投影到新形式中。e、 g:

list.AddRange(contentList.Select((c, index) => MyClass.GetCorrespondence(c, index));
您还可以使用ForEach-LINQ语句

contentList.ForEach(x => list.Add(MyClass.GetCorrespondence(module, x)));
编辑:有什么理由否决这项议案吗

还可以使用ForEach-LINQ语句

contentList.ForEach(x => list.Add(MyClass.GetCorrespondence(module, x)));

编辑:有什么理由否决这项议案吗

时尚不是我们在软件开发中努力追求的东西——可读、可维护、无错误——都很好。我怀疑你的代码可能有全部3个!谢谢你的评论。我正在检查,是否可以使用linq重新编写相同的代码。与返回新列表{MyClass.getRespondenceModule一样,i=>{something}}.ToList;我们理解你的问题。然而,我们只想指出,在您的情况下不需要使用linq,它不会给您带来任何好处。相反,它使您的代码更难阅读,并且由于调试器的限制,调试更难。在软件开发中,时尚不是我们追求的东西——可读、可维护、无错误——都很好。我怀疑你的代码可能有全部3个!谢谢你的评论。我正在检查,是否可以使用linq重新编写相同的代码。与返回新列表{MyClass.getRespondenceModule一样,i=>{something}}.ToList;我们理解你的问题。然而,我们只想指出,在您的情况下不需要使用linq,它不会给您带来任何好处。相反,它使您的代码更难阅读,并且由于调试器的限制,调试更加困难。