32

重複の可能性:
C# での辞書のマージ

辞書 1

「a」、「1」、
「b」、「2」

辞書 2

「c」、「3」、
「d」、「4」

辞書 3

「え」、「5」、
「ふ」、「6」

複合辞書

「a」、「1」、
「b」、「2」、
「c」、「3」
、「d」、「4」
、「e」、「5」
、「f」、「6」

上記の 3 つの辞書を 1 つの結合辞書に結合するにはどうすればよいですか?

4

2 に答える 2

146
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);
于 2012-05-11T22:31:23.653 に答える
14

それらをループするだけです:

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

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

(たとえば、配列を結合する辞書のdictionariesToCombine一部であると仮定します。)IEnumerable

于 2012-05-11T22:27:51.677 に答える