【问题标题】:How to "add" 2 dictionaries in C#? [duplicate]如何在 C# 中“添加”2 个字典? [复制]
【发布时间】:2019-11-13 18:33:33
【问题描述】:

假设我有 2 个字典:

            var dict1 = new Dictionary<string, int> {
                { "key1", 1 },
                { "key2", 2 },
            };


            var dict2 = new Dictionary<string, int> {
                { "key2", -3 },
                { "key3", -4 },
            };

有没有一种简单的方法来“添加”它们?结果是:

            var dict3 = new Dictionary<string, int> {
                { "key1", 1 },
                { "key2", -1 },
                { "key3", -4 },
            };

键合并,值按键相加

【问题讨论】:

  • 你试过什么? StackOverflow 希望您做出一些尝试并提供minimal reproducible example。看看How to Ask
  • @Herohtar我尝试先创建一个空的dict3 并循环遍历每个条目,如果不存在则添加新条目或更新值(如果存在),但我觉得该代码非常难看

标签: c# .net dictionary


【解决方案1】:

你可以这样做:

var d3 = dict1.Union(dict2)
              .GroupBy(kvp => kvp.Key)
              .ToDictionary(g => g.Key, g => g.Select(x => x.Value).Sum());

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    相关资源
    最近更新 更多