Объединение нескольких словарей в один словарь
Возможный дубликат:
Слияние словарей на С#
словарь 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 словаря в один комбинированный словарь?
Ответы
Ответ 1
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);
Ответ 2
Просто проведите через них:
var result = new Dictionary<string, string>();
foreach (var dict in dictionariesToCombine) {
foreach (var item in dict) {
result.Add(item.Key, item.Value);
}
}
(Предполагает, что dictionariesToCombine
является некоторым IEnumerable
ваших словарей, чтобы объединить, скажем, массив).