连接两个字典

17 浏览
0 Comments

连接两个字典

给定一些字典

Dictionary GroupNames = new Dictionary();
Dictionary AddedGroupNames = new Dictionary();

我无法将它们合并成一个字典:

GroupNames = GroupNames.Concat(AddedGroupNames);

因为“类型不能被隐式转换”。我相信(并且我的代码证明了我是对的),它们的类型是相同的 - 我忽视了什么?

0
0 Comments

问题:如何将两个字典进行合并?

在这个问题中,用户定义了一个名为GroupNamesDictionary<string,string>。为了将两个字典合并,需要使用ToDictionary方法。具体代码如下:

GroupNames = GroupNames.Concat(AddedGroupNames)
                       .ToDictionary(x=>x.Key,x=>x.Value);

需要注意的是,如果两个原始字典具有相同的键,那么需要使用某种规则来正确合并它们。

这是一种比之前提供的其他解决方案更简单的解决方法!

这是一个很好的解决方案,但唯一的问题是重复的键。如果存在重复的键,会引发异常。可以使用以下代码解决重复键的问题:

GroupNames = GroupNames.Concat(AddedGroupNames.Where( x=> !GroupNames.ContainsKey(x.Key))).ToDictionary(x=>x.Key, x=>x.Value)

0