Многоключевой словарь C# и TryGetValue ⇐ C#
Многоключевой словарь C# и TryGetValue
Я пытаюсь создать словарь с двумя ключами, так как это кажется лучшей идеей, чем создание двух словарей с одинаковым значением. Я хочу получить значение с помощью одного из двух ключей, то есть, если один из двух ключей совпадает, он возвращает значение. Я также увидел, что могу добавить в словарь 2 элемента с разными ключами, но одинаковым значением
Я написал этот код, но хочу знать, есть ли более эффективный способ сделать это... Или есть другой лучший способ получить то, что я хочу, без использования многоключевого словаря
public bool TryGetValue (выходное значение TValue, TKey1 key1 = по умолчанию, TKey2 key2 = по умолчанию) { значение = по умолчанию; if (EqualityComparer.Default.Equals(key1, default) && EqualityComparer.Default.Equals(key2, default)) вернуть ложь; foreach (в этом пара var) { if ((EqualityComparer.Default.Equals(key1, default) || пара.Key.Item1.Equals(key1)) && (EqualityComparer.Default.Equals(key2, default) || пара.Key.Item2.Equals(key2))) { значение = пара.Значение; вернуть истину; } } вернуть ложь; }
Я пытаюсь создать словарь с двумя ключами, так как это кажется лучшей идеей, чем создание двух словарей с одинаковым значением. Я хочу получить значение с помощью одного из двух ключей, то есть, если один из двух ключей совпадает, он возвращает значение. Я также увидел, что могу добавить в словарь 2 элемента с разными ключами, но одинаковым значением
Я написал этот код, но хочу знать, есть ли более эффективный способ сделать это... Или есть другой лучший способ получить то, что я хочу, без использования многоключевого словаря
public bool TryGetValue (выходное значение TValue, TKey1 key1 = по умолчанию, TKey2 key2 = по умолчанию) { значение = по умолчанию; if (EqualityComparer.Default.Equals(key1, default) && EqualityComparer.Default.Equals(key2, default)) вернуть ложь; foreach (в этом пара var) { if ((EqualityComparer.Default.Equals(key1, default) || пара.Key.Item1.Equals(key1)) && (EqualityComparer.Default.Equals(key2, default) || пара.Key.Item2.Equals(key2))) { значение = пара.Значение; вернуть истину; } } вернуть ложь; }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение