我需要帮助解决这个问题... 我有两个相同对象的列表“SearchResult”,这个对象有一个id属性和一个score属性。 在两个列表中可以存在相同的id,但是具有不同的分数,所以我需要创建一个组合相同id的新List,但是得分必须是两个得分的总和,最后,列表按最终得分排序。 我怎样才能做到这一点? 我搜索linq查询,但我找不到任何解决方案。
我希望你能帮助我,谢谢!
答案 0 :(得分:6)
听起来你可能想要这样的东西:
var summed = results1.Concat(results2)
.GroupBy(r => r.Id)
.Select(g => new SearchResult {
Id = g.Key,
Score = g.Sum(x => x.Score)
});
答案 1 :(得分:0)
您可以使用链接中的Union
方法。例如:
var mergedList = firstList.Union(secondList);