Простой общий метод расширения
Вот быстрый общий метод расширения, который добавляет метод ContainsPair()
к любому IDictionary
:
public static bool ContainsPair<TKey, TValue>(this IDictionary<TKey, TValue> dictionary,
TKey key,
TValue value)
{
return dictionary.TryGetValue(key, out var found) && found.Equals(value);
}
Это позволяетвам нужно проверять словари, как это:
if( myDict.ContainsPair("car", "mustang") ) { ... } // NOTE: this is not case-insensitive
Проверка без учета регистра
При работе со строковыми ключами вы можете создать регистр Dictionary
- нечувствителен к ключам, создавая его при помощи компаратора, например StringComparer.OrdinalIgnoreCase
, при создании словаря.
Однако, чтобы сделать регистр нечувствительным к регистру (если значения также являются строками), вы можетеиспользуйте эту версию, которая добавляет параметр IComparer
:
public static bool ContainsPair<TKey, TValue>(this IDictionary<TKey, TValue> dictionary,
TKey key,
TValue value,
IComparer<TValue> comparer)
{
return dictionary.TryGetValue(key, out var found) && comparer.Compare(found, value) == 0;
}