在两个泛型列表中连接和/或合并对象

本文关键字:连接 对象 合并 列表 泛型 两个 | 更新日期: 2023-09-27 17:50:16

我需要帮助解决这个问题…我有两个相同对象的列表"SearchResult",这个对象有一个id属性和一个分数属性。在两个列表中可以存在相同的id,但具有不同的分数,所以我需要创建一个新的列表,结合相同的id,但分数必须是两个分数的总和,最后,列表按最终分数排序。我怎么能做到呢?我搜索了一个linq查询,但是我找不到任何解决方案。

我希望你能帮助我,谢谢!

在两个泛型列表中连接和/或合并对象

听起来你可能想要这样的东西:

var summed = results1.Concat(results2)
                     .GroupBy(r => r.Id)
                     .Select(g => new SearchResult { 
                                Id = g.Key, 
                                Score = g.Sum(x => x.Score)
                             });

您可以使用链接中的Union方法。例子:

var mergedList = firstList.Union(secondList);