c# - 连接和/或合并两个通用列表中的对象

标签 c# linq generic-list

我需要帮助解决这个问题... 我有两个相同对象“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)
                             });

关于c# - 连接和/或合并两个通用列表中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663857/

相关文章:

c# - 单例模式 - 一个简化的实现?

c# - 使用 .NET native 工具链编译导致 System.OutOfMemoryException

c# - 如何从路径目录字符串中删除文件名?

c# - 在用初始容量初始化的列表上调用 `Clear()`

C#反射,获取重载方法

c# - 使用 lambda 表达式计算两个带有索引的列表的交集

c# - Linq,如何指定时间戳条件?

c# - 使用多个联接循环遍历 Linq 结果集

c# - 将 XElement 添加到 XDocument 时出现重复元素

java - 我的递归列表的前置功能创建了一个无限列表