为集合中的每个项目设置属性
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一种方法比较好。
第二个是
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 inEnumerable
. See Eric Lippert's blog for details on why this decision was made: