Объединение двух словарей с LINQ

Мой вопрос отмечен как возможный дубликат этого вопроса: Как объединить два словаря без цикла?

Я считаю, что мой вопрос в другом, потому что я спрашиваю, как объединить два словаря определенным образом: я хочу, чтобы все элементы из Dictionary1 плюс все элементы из Dictionary2, которых нет (т.е. ключ не существует) в Dictionary1.

У меня есть два словаря вот так:

var d1 = new Dictionary();
var d2 = new Dictionary();

d1["a"] = 1;
d1["b"] = 2;
d1["c"] = 3;

d2["a"] = 11;
d2["e"] = 12;
d2["c"] = 13;

Я хотел бы объединить их в новый Словарь (технически это не обязательно должен быть словарь, это может быть просто последовательность KeyValuePairs ), так что выходные данные содержат все KeyValuePairs из d1 и только KeyValuePairs из d2 , чей ключ не отображается в d1 .

Концептуально:

var d3 = d1.Concat(d2.Except(d1))

Но это дает мне все элементы из d1 и d2.

Кажется, это должно быть очевидно, но я должен что-то упустить.

23
задан Community 23 May 2017 в 10:30
поделиться