我有一个IEnumerable,我尝试在可枚举的每个项目中调用“Text”setter。
我能做到:
foreach (Data d in DataEnumerable)
{
d.Text="123";
}
我也可以这样做:
DataEnumerable.All(x =>
{
x.Text = "123";
return true;
});
为每个可枚举项目调用set方法的最佳做法是什么?
答案 0 :(得分:10)
第一种方法更好。
第二个是Enumerable.All
的滥用。此方法旨在用于测试Enumerable的所有元素,以查看它们是否满足条件。你不是在这里做的。
有一种方法List.ForEach
可用于此类更新操作,但LINQ团队决定不在Enumerable
中添加相应的方法。有关为什么做出此决定的详细信息,请参阅Eric Lippert的博客: