Мой вопрос был помечен как возможный дубликат этого вопроса: Как совместить два словаря без цикла?
Я считаю, что мой вопрос отличается от того, что я задаю вопрос о том, как объединить два словаря определенным образом: я хочу, чтобы все слова из словаря 1 плюс все элементы из словаря 2, которых нет (т.е. ключ не существует) в Dictionary1.
У меня есть два словаря типа:
var d1 = new Dictionary<string,object>();
var d2 = new Dictionary<string,object>();
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.
Похоже, это должно быть очевидно, но я должен что-то пропускать.