【问题标题】:Combining dictionary with possibly repeated keys into another dictionary containing the largest values将字典与可能重复的键组合到另一个包含最大值的字典中
【发布时间】:2019-01-18 14:16:54
【问题描述】:

我想在两个(或可能更多)字典中执行“最大”操作,这将生成一个新字典,如下所示:

  • 如果某个键仅存在于某些字典中,则它的值将包含在结果中;
  • 如果多个字典中存在键,则最大值将包含在结果中;

有没有办法使用 Linq 做到这一点?只能想到遍历每个字典的所有键,感觉很丑。

此外,这感觉像是 Linq 有用的东西。

【问题讨论】:

    标签: c# linq dictionary


    【解决方案1】:

    您可以将字典合并到一个查找中,然后将其转换回字典。

    var result = dictionaries.SelectMany(dict => dict)
                             .ToLookup(pair => pair.Key, pair => pair.Value)
                             .ToDictionary(g => g.Key, g => g.Max());
    

    【讨论】:

      猜你喜欢
      • 2021-01-11
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多