我有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方法。

10-06 12:17