2010-10-17 152 views
38

我正在寻找一种方法来更改下面的代码:多行foreach循环

foreach (Contact _contact in contacts) 
{ 
    _contact.ID = 0; 
    _contact.GroupID = 0; 
    _contact.CompanyID = 0; 
} 

我想改变这一点使用LINQ /λ成类似于:

contacts.ForEach(c => c.ID = 0; c.GroupID = 0; c.CompanyID = 0); 

但是这并不起作用。有没有什么办法可以在linq foreach中进行多行处理,而不是通过编写函数在一行中执行此操作?

回答

61
contacts.ForEach(c => { c.ID = 0; c.GroupID = 0; c.CompanyID = 0; }); 

它与LINQ本身没有任何关系;它只是一个用lambda语法编写的简单的匿名方法,传递给函数(自LINQ之前的2.0版本开始)。

+0

很简单,谢谢! – shlomoa 2017-12-07 06:58:23

3

LINQ代表语言集成查询 - 这意味着它是用于查询 - 即提取或转化序列引入一组新的,没有操纵原。

ForEach method hangs off List<T>,是一个方便快捷的foreach;没什么特别的。