c# – 如何从linq查询的所有项目设置属性,并从另一个也从查询中
发布时间:2020-12-15 06:36:38 所属栏目:百科 来源:网络整理
导读:我从数据库中提取了一个查询: ListmyClass items = new ListmyClass(from i in context select new myClass { A = i.A,B = "",// i doesn't know this,this comes from elsewhere C = i.C } 我也有另一个查询做类似的事情: ListmyClass2 otherItems = new
我从数据库中提取了一个查询:
List<myClass> items = new List<myClass>(from i in context select new myClass { A = i.A,B = "",// i doesn't know this,this comes from elsewhere C = i.C } 我也有另一个查询做类似的事情: List<myClass2> otherItems = new List<myClass2>(from j in context select new myClass2 { A = j.A,// A is the intersection,there will only be 1 A here but many A's in items B = j.B } 实际上,这些类更大,查询数据不仅由数据库而且由服务器分开.对于item.A相交的所有项目,是否可以使用LINQ查询来填充属性B.所有内置的LINQ谓词仅显示聚合,选择或bool表达式. 在我的大脑里,我有这样的东西,但这是全部的: items.Where(x => x.B = (otherItems.Where(z => z.A == x.A).Single().B)); 或者,我很乐意尝试在LINQ中进行这项工作,并且应该放弃它,赞成一个循环,其中实际设置变得微不足道?由于截止日期,我将使用for循环(而且长期来看,它可能最终会变得更加易读),但是可以这么做吗?需要一个扩展方法来添加一个特殊的谓词来允许这个吗? 解决方法
LINQ专为查询而设计.如果你想设置东西,你一定要使用一个循环(可能是foreach).这并不意味着您将无法使用LINQ作为该循环的一部分,但您不应该尝试在LINQ本身中应用副作用.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |