linq / lambda 中的多行 foreach 循环
Posted
技术标签:
【中文标题】linq / lambda 中的多行 foreach 循环【英文标题】:Multi-line foreach loop in linq / lambda 【发布时间】:2011-04-26 11:44:57 【问题描述】:我正在寻找一种方法来更改以下代码:
foreach (Contact _contact in contacts)
_contact.ID = 0;
_contact.GroupID = 0;
_contact.CompanyID = 0;
我想使用 LINQ / lambda 将其更改为类似于:
contacts.ForEach(c => c.ID = 0; c.GroupID = 0; c.CompanyID = 0);
但是这不起作用。除了通过编写一个函数在一行中执行此操作之外,还有什么方法可以在 linq foreach 中执行多行操作?
【问题讨论】:
【参考方案1】:contacts.ForEach(c => c.ID = 0; c.GroupID = 0; c.CompanyID = 0; );
它与 LINQ 本身没有任何关系;它只是一个用 lambda 语法编写的简单匿名方法,传递给 List<T>.ForEach
函数(自 2.0 以来,在 LINQ 之前就存在)。
【讨论】:
我正在寻找一种在 LINQ Select 中执行多行语句的方法。 ForEach 语法允许我这样做。谢谢!【参考方案2】:LINQ 代表 Language Integrated Query - 这意味着它用于查询 - 即将序列提取或转换为新集合,而不是操纵原始集合。 p>
ForEach
method hangs off List<T>
是一个方便的 foreach 快捷方式;没什么特别的。
【讨论】:
谢谢,这很有帮助。看起来有点类似于 ES6 中的 map 函数。以上是关于linq / lambda 中的多行 foreach 循环的主要内容,如果未能解决你的问题,请参考以下文章