我有两个查询,每个查询返回一个对象列表。如何合并给定属性上的两个列表
List<A> list1 = (....query...)
List<A> list2 = (....query...)
“A”是对象模型。
这两个查询都返回几乎相同的对象,但设置了不同的属性。
我想删除重复的将它们合并为基于对象A的属性
基本上是这样一个列表:
List<A> finalLis = list1 join list2 on elemList1.somePropID == elemList2.somePropID
在简单的C#的风格会是这样的:
foreach(elem1 : list1) {
foreach(elem2: list1) {
if(elem1.someID == elem2.someID) {
elem1.someProp = elem2.someProp
elem1.otherProp = elem2.otherProp
}
}
}
我不想这样做,因为我确信linq中有更优雅的方式。
如果您有任何建议,请让我知道。
你想有从第二收集,不第一个集合中匹配的任何项目ID,在结果集中的项目? – mipe34
否....第一个列表中的元素与第二个列表中的元素几乎相同。理念是在第一个列表中没有设置一些属性,但是这些值可以在对应的对象中找到。最终列表是第一个列表,但所有属性都设置为 – cmg