我的问题被标记为可能是这个问题的重复:如何在C#中不使用循环将两个字典内容组合起来?
我认为我的问题不同,因为我想以特定的方式合并两个字典:我想要Dictionary1中的所有项目加上Dictionary2中所有不在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
中而不在d1
中出现的键值对。
概念上:
var d3 = d1.Concat(d2.Except(d1))
但这给了我d1和d2中的所有元素。
看起来应该很明显,但我一定漏掉了什么。