连接两个字典[重复]

Posted

技术标签:

【中文标题】连接两个字典[重复]【英文标题】:Concatenate two Dictionaries [duplicate] 【发布时间】:2013-12-07 16:01:36 【问题描述】:

给定一些字典

Dictionary<string, string> GroupNames = new Dictionary<string, string>();
Dictionary<string, string> AddedGroupNames = new Dictionary<string, string>();

我无法将它们合并为一个:

GroupNames = GroupNames.Concat(AddedGroupNames);

因为“类型不能被隐式转换”。我相信(我的代码证明我是真的)它们的类型是相同的——我忽略了什么?

【问题讨论】:

可以安全地假设GroupNamesAddedGroupNames 之间不会发生密钥冲突吗? 这里已经回答了:***.com/questions/294138/… 【参考方案1】:

我认为您将GroupNames 定义为Dictionary&lt;string,string&gt;,因此您需要像这样添加ToDictionary

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

请注意,两个原始字典会有不同的键,否则我们需要一些规则来正确合并它们。

【讨论】:

太棒了..与上面标记为原始的问题中给出的其他答案相比,这是更简单的解决方案! 这是一个很好的解决方案,但唯一的问题是重复键。如果存在重复键,则会抛出异常。 如果有重复键,使用如下代码GroupNames = GroupNames.Concat(AddedGroupNames.Where( x=&gt; !GroupNames.ContainsKey(x.Key))).ToDictionary(x=&gt;x.Key, x=&gt;x.Value)

以上是关于连接两个字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章

基于没有重复的键合并两个字典

从两个 DataFrame 列构建字典 [重复]

在两个字典数组中查找重复键以使用新数组字典更新旧数组字典

Python:从两个列表构建字典[重复]

基于多个值条件打印字典键[重复]

字典支持重复的多维键?