2011-10-09 70 views
4

我有一個IEnumerable,我嘗試在枚舉的每個項目中調用「Text」setter。
我可以這樣做:爲集合中的每個項目設置屬性

foreach (Data d in DataEnumerable) 
{ 
    d.Text="123"; 
} 

我也可以這樣做:

DataEnumerable.All(x => 
    { 
     x.Text = "123"; 
     return true; 
    }); 

什麼是調用設置方法的枚舉每個項目的最佳實踐?

+1

你說的'最好practice'是什麼意思?效率最高?大部分可讀/可維護?此外,請考慮[codereview.se]以瞭解有關改進已有代碼的問題。 –

回答

10

第一種方法更好。

第二個是濫用Enumerable.All。此方法旨在用於測試Enumerable的所有元素以查看它們是否滿足條件。你在這裏沒有這樣做。

有一種方法List.ForEach可用於這種更新操作,但LINQ團隊決定Enumerable添加相應的方法。見埃裏克利珀的博客上細節爲什麼這個決定是:

相關問題