我在内存中有2组calection,我想根据2返回一组。我的对象有以下结构:
class Item
{
public string key {get,set;}
public int total1 {get;set;}
public int total2 {get ;set;}
}
我想“联合”它们,以便当项目表单集1上的键等于集合2中项目的键时,我的联合应返回如下项目:
item_union.Key= item1.key==item2.key;
item_union.total1= item1.total1 + item2.total1;
item_union.total2= item1.total2 + item2.total2;
有人可以告诉我如何构建我的自定义相等比较器以获得此结果吗?
非常感谢提前
答案 0 :(得分:2)
听起来可能想要加入,或者可能只想连接集合,按键分组然后对属性求和:
// Property names changed to conform with normal naming conventions
var results = collection1.Concat(collection2)
.GroupBy(x => x.key)
.Select(g => new Item {
Key = g.Key,
Total1 = g.Sum(x => x.Total1),
Total2 = g.Sum(x => x.Total2)
});