Concat和/或合并两个通用列表中的对象

Pho*_*_uy 2 c# linq generic-list

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

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

Jon*_*eet 6

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

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