我有IQueryable<someClass>
baseList
和List<someOtherClass>
someData
我想做的是更新baseList中某些项目的属性。
对于someData中的每个项目,我想在基本列表中找到相应的项目并更新该项目的属性。
someOtherClass.someCode == baseList.myCode
我可以使用Linq进行某种类型的联接并设置baseList.someData + = someOtherClass.DataIWantToConcantenate。
我可能可以通过迭代来执行此操作,但是是否有一种花哨的Linq方法可以仅用几行代码来完成此操作?
谢谢你的提示
〜ck在圣地亚哥
最佳答案
要配对两个列表中的元素,可以使用LINQ连接:
var pairs = from d in someData
join b in baseList.AsEnumerable()
on d.someCode equals b.myCode
select new { b, d };
这将为您提供
someData
中的每个项目及其baseList
中的对应项的枚举。从那里,您可以串联连接:foreach(var pair in pairs)
pair.b.SomeData += pair.d.DataIWantToConcantenate;
如果您真的想设置串联而不是
+=
,请查看LINQ的Union,Intersect或Except方法。