C# 在两个常规列表中合并和/或合并对象

C# 在两个常规列表中合并和/或合并对象,c#,linq,generic-list,C#,Linq,Generic List,我需要帮助解决这个问题。。。 我有两个相同对象的列表“SearchResult”,这个对象有一个id属性和一个score属性。 在这两个列表中,可以存在相同的id,但分数不同,因此我需要创建一个新的列表,该列表组合相同的id,但分数必须是两个分数的总和,最后,列表按最终分数排序。 我该怎么做? 我搜索linq查询,但找不到任何解决方案 我希望你能帮助我,谢谢 听起来你可能想要这样的东西: var summed = results1.Concat(results2)

我需要帮助解决这个问题。。。 我有两个相同对象的列表“SearchResult”,这个对象有一个id属性和一个score属性。 在这两个列表中,可以存在相同的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);

哦,我的上帝!你先回答问题再问问题伙计!