字典1
“一”, “1”
“B”,“ 2“
字典2
“C”, “3”
“d”, “4”
字典3
“E”, “5”
“f”,“6”
组合字典
“一”, “1”
“B”, “2”
“C”, “3”
“d”, “4”
“E”, “5”
“F”, “6”
怎样上述3个词典合并成一个单一的组合字典?
字典1
“一”, “1”
“B”,“ 2“
字典2
“C”, “3”
“d”, “4”
字典3
“E”, “5”
“f”,“6”
组合字典
“一”, “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
结合起来,比方说,一个阵列。)
如果您的键具有不同的值,会发生什么? –
Sani..I创建了一个类级别的私有变量,然后每次调用另一个私有方法1字典将它们添加到组合方法中。它看起来并不干净,所以我在这里要求更好的方法。 –
你可以展示你的代码中目前代表的字典吗? – EtherDragon