linq / lambda中的多行foreach循环
我正在寻找一种方法来改变下面的代码:
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中做多行,而不是写一个函数来做到这一点?
contacts.ForEach(c => { c.ID = 0; c.GroupID = 0; c.CompanyID = 0; });
这与LINQ本身没有任何关系。 它只是一个用lambda语法写成的简单的匿名方法,传递给List<T>.ForEach
函数(从LINQ之前的2.0版本开始)。
LINQ代表语言综合查询 (Language Integrated Query) – 这意味着查询 – 即将序列提取或转换成新的集合,而不是操纵原始的。
ForEach
方法挂起List<T>
并且是一个方便的快捷方式, 没什么特别的。