当前位置:  开发笔记 > 编程语言 > 正文

扩展方法为每个项目中的字段赋值?

如何解决《扩展方法为每个项目中的字段赋值?》经验,为你挑选了1个好方法。

我可以发誓已经为Queryable类构建了一个我无法找到的扩展方法,但也许我正在考虑一些不同的东西.

我正在寻找以下内容:

IQueryable en = from e in IDB.Entities select e;
en.ForEach(foo => foo.Status = "Complete");

en.Foreach()必不可少:

foreach(Entity foo in en){
   foo.Status = "Complete";
}

这已经写好了吗?如果没有,是否可以编写所述扩展方法,最好允许该表上的任何LINQ表和任何字段.哪里是一个好的起点?



1> Jon Skeet..:

基类库中没有任何内容.然而,许多开发人员在他们自己的公共库中都有这个,我们也在MoreLINQ中有它.

这有点违背了LINQ的精神,因为它只是副作用 - 但它确实很有用,所以我认为实用主义在这里胜过教条.

有一点需要注意 - 在您的示例中使用查询表达式确实没有意义.(这并不完全是多余的,但是如果你没有暴露这个值并不重要.)这里的选择并没有做任何有用的事情.你可以这样做:

IDB.Entities.ForEach(foo => foo.status = "Complete");

即使你想做一个"where"或"select",我通常也会使用点符号:

IDB.Entities.Where(foo => foo.Name == "fred")
            .ForEach(foo => foo.status = "Complete");

只使用查询表达式,它们实际上使代码更简单:)

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有