Выбрать ключ и вернуть значение ИЛИ выбрать значение и вернуть ключ

112
12

Я предполагаю, что это очень краткий способ сделать это, но я новичок в.NET. У меня есть набор пар для сопоставления. Однако отображение работает в обоих направлениях. Я хотел бы сохранить их один раз, вот так:

{"a", "a'"},
{"b", "b'"},
...

используя Dictionary или что-то в этом роде. Я знаю, что я могу использовать linq для легкого запроса словаря, но как я могу условно вернуть его, если я запрашиваю значение или возвращаю значение, если я вводим ключ? Например, если вход b', выход b. Если input a, выведите a'.

Между прочим, структура данных не обязательно должна быть словарем. Мне просто нужен самый сжатый способ сохранить его и самый сжатый способ его получить. Это не является интенсивным.

спросил(а) 2021-01-19T17:27:53+03:00 9 месяцев назад
1
Решение
92

Наиболее кратким способом является использование словаря и включение в него всего, например:

{ "a", "a'" }
{ "a'", "a" }
{ "b", "b'" }
{ "b'", "b" }

Поиск и использование будут быстрыми и понятными

ответил(а) 2021-01-19T17:27:53+03:00 9 месяцев назад
80

Создайте метод расширения словаря.

public static string Retrieve(this Dictionary<string,string> dictionary, string value)
{
var item = (from v in dictionary
where v.Key == value || v.Value == value
select (v.Key == value) ? v.Value : v.Key
).FirstOrDefault();

return item;
}

ответил(а) 2021-01-19T17:27:53+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема