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

Nao*_*aor 4 .net c# ienumerable foreach

我有一个IEnumerable,我尝试在枚举的每个项目中调用"Text"setter.
我可以:

foreach (Data d in DataEnumerable)
{
    d.Text="123";
}
Run Code Online (Sandbox Code Playgroud)

我也可以这样做:

DataEnumerable.All(x =>
    {
        x.Text = "123";
        return true;
    });
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 10

第一种方法更好.

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

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