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