连接两个词典

Ale*_*der 42 c# implicit-conversion

鉴于一些字典

Dictionary<string, string> GroupNames = new Dictionary<string, string>();
Dictionary<string, string> AddedGroupNames = new Dictionary<string, string>();
Run Code Online (Sandbox Code Playgroud)

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

GroupNames = GroupNames.Concat(AddedGroupNames);
Run Code Online (Sandbox Code Playgroud)

因为"类型不能被隐式转换".我相信(我的代码证明我是真的)他们的类型是一样的 - 我可以忽略什么?

Kin*_*ing 85

我认为你定义了你的GroupNamesas Dictionary<string,string>,所以你需要添加ToDictionary如下:

GroupNames = GroupNames.Concat(AddedGroupNames)
                       .ToDictionary(x=>x.Key,x=>x.Value);
Run Code Online (Sandbox Code Playgroud)

请注意,2个原始词典将具有不同的键,否则我们需要一些规则来正确合并它们.

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