Использовать ToDictionary ?
orignalDictionary.ToDictionary(kp => kp.Value, kp => kp.Key);
Это работает, потому что IDictionary<TKey,TElement>
; также IEnumerable<KeyValuePair<TKey,TElement>>
;. Просто помните, что если у вас есть повторяющиеся значения, вы получите исключение.
Если у вас есть повторяющиеся значения, вам нужно будет решить, что с ними делать. Одним простым способом было бы игнорировать дубликаты, сначала сгруппировав значение, а затем составив словарь.
originalDictionary
.ToLookup(kp => kp.Value)
.ToDictionary(g => g.Key, g => g.First().Key);