我的问题已被标记为这个问题的一个可能重复:How to combine two dictionaries without looping?结合两个词典与LINQ
我相信我的问题是不同的,因为我是问如何将两个字典以特定方式结合起来:我想所有项目从Dictionary1加上Dictionary1中所有不在Dictionary1中的项目(即密钥不存在)。
我有两本词典是这样的:
var d1 = new Dictionary<string,object>();
var d2 = new Dictionary<string,object>();
d1["a"] = 1;
d1["b"] = 2;
d1["c"] = 3;
d2["a"] = 11;
d2["e"] = 12;
d2["c"] = 13;
我想将它们合并成一个新的词典(在技术上,它并不一定是一个字典,它可能只是的KeyValuePairs
序列)等输出包含来自d1的所有KeyValuePairs
以及仅来自d2
的KeyValuePairs,其密钥未出现在d1
中。
概念:
var d3 = d1.Concat(d2.Except(d1))
但是,这是给我所有的D1和D2元素。
似乎它应该是显而易见的,但我必须失去一些东西。
的可能的复制[如何添加2个词典内容,而不循环在C#](http://stackoverflow.com/questions/712927/how-to-add-2-dicti onary-contents-without-in-c-sharp) – 2016-04-28 05:01:16
这个问题不是这个问题的重复。这个问题是问如何组合两个字典,d1和d2,使得生成的字典包含d1中的所有项目以及来自d2的所有项目,这些项目不在d1中。另一个问题是要求,而且答案解释了如何在没有任何额外条件的情况下合并两本字典。 – wageoghe 2016-04-28 17:58:46