连接两个字典[重复]
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);
因为“类型不能被隐式转换”。我相信(我的代码证明我是真的)它们的类型是相同的——我忽略了什么?
【问题讨论】:
可以安全地假设GroupNames
和AddedGroupNames
之间不会发生密钥冲突吗?
这里已经回答了:***.com/questions/294138/…
【参考方案1】:
我认为您将GroupNames
定义为Dictionary<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)
以上是关于连接两个字典[重复]的主要内容,如果未能解决你的问题,请参考以下文章