Добрый день. Возник дурацкий вопрос: Есть 2 Dictionary. Нужно получить третий, который будет включать в себя все пары "ключ-значение" из первого и второго. Точно известно, что совпадения ключей в словарях нет.
Пробовал так - не получается.
Markers = new Dictionary<string, string>(CreateCommonMarkers(vm));
Markers.Concat(UniqueMarkers);
return Markers;
CreateCommonMarkers
- создается правильно
UniqueMarkers
- создается правильно
Markers
получает первый словарь правильно.
А вот Concat
не срабатывает. На выходе - дубликат словаря, создаваемого CreateCommonMarkers(vm)
Соответственно вопрос: что я сделал не так?
P.S. сделать через foreach я могу, но может есть менее извращенный способ.
Если уверены, что совпадений ключей нет, то можно попробовать так:
var dict1 = Enumerable.Range(0,10).ToDictionary(x=>x);
var dict2 = Enumerable.Range(15,10).ToDictionary(x=>x);
Для объединения словарей можно использвать методы Union или Concat. Разница между ними только в том, что Union удаляет доубликаты, что в данном контексте не требуется. Для маленьких словарей нет разницы, какой из методов использовать, для больших, как мне кажется, Concat будет работать быстрей.
var combined_version_1 = dict1.Union(dict2).ToDictionary(x=>x.Key, x=>x.Value);
var combined_version_2 = dict1.Concat(dict2).ToDictionary(x=>x.Key, x=>x.Value);
Как видно, на входе получается третий словарь, который можно вернуть как результат.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я создаю два объекта при нажатии лкмПри нажатии на правую клавишу мыши мне нужно, чтобы они удалились
Осваивая NHibernate в связке с ASPNET, столкнулся с проблемой, что NHibernate не может подключиться с ошибкой: Сообщение = Не удается открыть базу данных...
Задали вопрос на учебе, что больше потребляет ресурсов ++i или i++Самостоятельно инфо не нашёл, прошу подсказать где искать