2010-10-17 155 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;沒什麼特別的。