Объединить <int, string> и <int, double> в <double, string> словарь C#

Если мой словарь 1:

0 : string1
1 : string2
2 : string3

И мой словарь 2:

0 : 28.0
1 : 12.6
2 : -12.4

Как получить комбинированный словарь с:

28.0  : string1
12.6  : string2
-12.4 : string3

Вот как я их использовал до сих пор

SortedDictionary<int, double> map2 = new SortedDictionary<int, double>();
SortedDictionary<int, string> map1 = new SortedDictionary<int, string>();

Изменить - для этого вопроса предположим, что ключи в обоих словарях являются последовательными, в порядке возрастания и всегда одинаковы.

Что произойдет, если один из словарей содержит значение, которого нет в другом?

DavidG 24.08.2018 18:25

@maccettura Ответить в ответах!

wizzwizz4 24.08.2018 18:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предполагая, что оба словаря имеют одинаковое количество и одинаковые ключи:

map1.ToDictionary(x => map2[x.Key], x => x.Value)

Это не сработает, если второй словарь имеет повторяющиеся значения.

Это сработало, спасибо. Я пробовал что-то поблизости, но это было неправильно! Спасибо!

user10141156 24.08.2018 18:28

@maccettura. Словари имеют индексатор, который принимает аргумент того же типа, что и ключ словаря. Это похоже на индекс, но на самом деле это ключ. И да, примеры показывают этот ключ.

Olivier Jacot-Descombes 24.08.2018 18:32

@ OlivierJacot-Descombes Я знаю это. Я сказал, что если бы в примере OP был индекс (то есть фактический индекс заказа), вы, конечно, не смогли бы получить к нему доступ по произвольному ключу. Но поскольку я неправильно прочитал, а в словарях есть ключ int, ответ Селмана правильный. Я поддержал

maccettura 24.08.2018 18:35

Другие вопросы по теме