2011-10-09 131 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添加相应的方法。见埃里克利珀的博客上细节为什么这个决定是:

相关问题