【问题标题】:Concat and/or merge objects in two generic lists在两个通用列表中连接和/或合并对象
【发布时间】:2011-04-14 21:21:27
【问题描述】:

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

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

【问题讨论】:

    标签: c# linq generic-list


    【解决方案1】:

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

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

    【讨论】:

    • 天哪!你在问问题之前先回答问题,伙计!
    【解决方案2】:

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

    var mergedList = firstList.Union(secondList);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多