将多个词典组合成一个词典

时间:2012-05-11 22:23:51

标签: c#

  

可能重复:
  Merging dictionaries in 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个词典合并为一个组合词典?

2 个答案:

答案 0 :(得分:117)

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);

答案 1 :(得分:10)

只需循环播放:

var result = new Dictionary<string, string>();

foreach (var dict in dictionariesToCombine) {
    foreach (var item in dict) {
        result.Add(item.Key, item.Value);
    }
}

(假设dictionariesToCombine是您词典的IEnumerable个词组合,例如,数组。)