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

发布于 2024-12-09 01:12:04 字数 301 浏览 1 评论 0原文

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

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

我也可以做:

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

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

I have an IEnumerable and I try to call "Text" setter in each item of the enumerable.
I can do:

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

I can also do:

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

What is the best practice to call set method for each item of enumerable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

智商已欠费 2024-12-16 01:12:04

第一种方法比较好。

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

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

The first method is better.

The second is an abuse of Enumerable.All. This method is intended to be used to test all elements of an Enumerable to see if they satisfy a condition. You are not doing that here.

There is a method List.ForEach which can be used for this sort of update operation, but the LINQ team decided not to add a corresponding method in Enumerable. See Eric Lippert's blog for details on why this decision was made:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文