【问题标题】:Set property for each item in collection为集合中的每个项目设置属性
【发布时间】:2011-12-03 20:46:24
【问题描述】:

我有一个 IEnumerable,我尝试在可枚举的每个项目中调用“文本”设置器。
我能做到:

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

我也可以:

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

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

【问题讨论】:

  • best practice 是什么意思?最有效率?最具可读性/可维护性?此外,请考虑 Code Review 了解有关改进已运行代码的问题。

标签: c# .net foreach ienumerable


【解决方案1】:

第一种方法更好。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多