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>并且是一个方便的快捷方式, 没什么特别的。