可能重复:
在 C# 中合并字典
字典 1
“a”、“1”
、“b”、“2”
字典 2
“c”、“3”
、“d”、“4”
字典 3
“e”、“5”
、“f”、“6”
组合字典
“a”、“1”、
“b”、“2”、
“c”、“3”、
“d”、“4”
、“e”、“5”
、“f”、“6”
如何将上述 3 个字典组合成一个组合字典?
可能重复:
在 C# 中合并字典
字典 1
“a”、“1”
、“b”、“2”
字典 2
“c”、“3”
、“d”、“4”
字典 3
“e”、“5”
、“f”、“6”
组合字典
“a”、“1”、
“b”、“2”、
“c”、“3”、
“d”、“4”
、“e”、“5”
、“f”、“6”
如何将上述 3 个字典组合成一个组合字典?
var d1 = new Dictionary<string, int>();
var d2 = new Dictionary<string, int>();
var d3 = new Dictionary<string, int>();
var result = d1.Union(d2).Union(d3).ToDictionary (k => k.Key, v => v.Value);
编辑
为了确保没有重复的键使用:
var result = d1.Concat(d2).Concat(d3).GroupBy(d => d.Key)
.ToDictionary (d => d.Key, d => d.First().Value);
只需遍历它们:
var result = new Dictionary<string, string>();
foreach (var dict in dictionariesToCombine) {
foreach (var item in dict) {
result.Add(item.Key, item.Value);
}
}
(假设你dictionariesToCombine
的一些IEnumerable
字典要组合,比如一个数组。)