为集合中的每个项目设置属性

时间:2011-10-09 07:43:52

标签: c# .net foreach ienumerable

我有一个IEnumerable,我尝试在可枚举的每个项目中调用“Text”setter。
我能做到:

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

我也可以这样做:

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

为每个可枚举项目调用set方法的最佳做法是什么?

1 个答案:

答案 0 :(得分:10)

第一种方法更好。

第二个是Enumerable.All滥用。此方法旨在用于测试Enumerable的所有元素,以查看它们是否满足条件。你不是在这里做的。

有一种方法List.ForEach可用于此类更新操作,但LINQ团队决定Enumerable中添加相应的方法。有关为什么做出此决定的详细信息,请参阅Eric Lippert的博客: