C# 将foreach转换为linq
如何将以下C# 将foreach转换为linq,c#,asp.net,linq,c#-4.0,foreach,C#,Asp.net,Linq,C# 4.0,Foreach,如何将以下c#foreach转换为linqcode var structure = "names structure"; var names = "name1, name2, name3"; foreach (var name in namesList) { BuildPage(name, structure, names); } 不需要将其转换为LINQ 您在这里要做的是为名称列表中的每个名称启动一个操作/调用一个方法(就像您的代码所说的那样)。因此,您希望为集合中的所有元素创建副
c#foreach
转换为linq
code
var structure = "names structure";
var names = "name1, name2, name3";
foreach (var name in namesList)
{
BuildPage(name, structure, names);
}
不需要将其转换为LINQ 您在这里要做的是为
名称列表
中的每个名称
启动一个操作/调用一个方法(就像您的代码所说的那样)。因此,您希望为集合中的所有元素创建副作用
LINQ有一种功能性方法。所以它的目的是获取一个集合的值,通过投影、过滤和/或聚合创建另一个集合,但不是对这些元素产生副作用
您的代码可读且有效,因此无需将其转换为误用的LINQ语句。与此相反,您可以使用
.ForEach
循环,该循环采用操作
参数
namesList.ForEach(x => BuildPage(x, structure, names));
但是,是的,
Rene Vogt
说了什么。我想说的是,没有意义,你不应该重构foreach循环,将事情转换成LINQ,只应该重构实际上是查询的foreach循环,即将事情添加到列表中的foreach循环。你不会那么做的,所以我会说别管它。为什么要将它转换成LINQ?Name?.Frame(Name=> Bu建dPoad(名称、结构、名称)),但是,正如其他人所说的,这只是一个前程。此外,考虑使用一个不同的昵称,而不是“StaskOutlook”。我曾经在LINQ中使用.FoeCH,但是我停止得非常快。它只是没有帮助,并且确实使代码的可读性降低,继续使用这个粒度:List.ForEach()
不是LINQ的一部分,它只是List
:)@RenéVogt的一个实例方法。我不知道,我一直认为这是一件小事。