C# C Linq合并词典列表

C# C Linq合并词典列表,c#,linq,C#,Linq,考虑下面的代码,它是一个合并到一个字典中的字典列表。这可以用linq编写吗 public static Dictionary<string, uint> mergeDictionaries(List<Dictionary<string, uint>> dictlist) { Dictionary<string, uint> mergedDict = new Dictionary<string, uint>

考虑下面的代码,它是一个合并到一个字典中的字典列表。这可以用linq编写吗

    public static Dictionary<string, uint> mergeDictionaries(List<Dictionary<string, uint>> dictlist)
    {
        Dictionary<string, uint> mergedDict = new Dictionary<string, uint>();
        foreach (Dictionary<string, uint> dict in dictlist)
        {
            foreach (KeyValuePair<string, uint> entry in dict)
            {
                if (mergedDict.ContainsKey(entry.Key))
                {
                    mergedDict[entry.Key] = mergedDict[entry.Key] + entry.Value;
                }
                else
                {
                    mergedDict[entry.Key] = entry.Value;
                }
            }
        }
        return mergedDict;
    }

99%的情况下,当人们使用ContainesKey时,他们应该使用TryGetValue。这就是这样的时刻。这两个字典-它们是否使用自定义比较器,例如,它们是否不区分大小写?错误CS1929:“IGrouping”不包含“Sum”的定义,并且最佳扩展方法重载“Enumerable”。SumIEnumerable需要“IEnumerable”Oops类型的接收器;那应该是。价值。固定的
dictlist
    .SelectMany(dict => dict)
    .GroupBy(kvp => kvp.Key)
    .ToDictionary(g => g.Key, g => g.Sum(kvp => kvp.Value))