使用LINQ更新集合中的所有对象
有没有办法使用LINQ执行以下操作?
foreach (var c in collection)
{
c.PropertyToSet = value;
}
为了澄清,我想迭代集合中的每个对象,然后更新每个对象的属性。
我的使用案例是,我在博客文章中有大量评论,并且我想遍历博客帖子上的每条评论,并将博客帖子的日期时间设置为+10小时。 我可以在SQL中完成,但我想保留在业务层中。
虽然您可以使用ForEach
扩展方法,但如果您只想使用您可以执行的框架
collection.Select(c => {c.PropertyToSet = value; return c;}).ToList();
由于懒惰评估, ToList
需要立即评估选择。
collection.ToList().ForEach(c => c.PropertyToSet = value);
我正在这样做
Collection.All(c => { c.needsChange = value; return true; });
链接地址: http://www.djcxy.com/p/51349.html