【发布时间】:2011-02-04 23:03:36
【问题描述】:
我的问题已被标记为可能与此问题重复:How to combine two dictionaries without looping?
我相信我的问题是不同的,因为我问的是如何以特定方式组合两个字典:我想要 Dictionary1 中的所有项目以及 Dictionary2 中不在 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,其 Key 没有出现在 d1 中。
概念上:
var d3 = d1.Concat(d2.Except(d1))
但这给了我来自 d1 和 d2 的所有元素。
看起来应该很明显,但我一定遗漏了什么。
【问题讨论】:
-
这个问题不是那个问题的重复。这个问题询问如何组合两个字典 d1 和 d2,以便生成的字典包含 d1 中的所有项目以及 d2 中尚未在 d1 中的所有项目。另一个问题是询问,答案解释了如何在没有任何额外条件的情况下组合两个字典。
标签: c# .net linq dictionary