Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
447 of 1492 menu
◀ ▶

Свойство Comparer

Свойство Comparer класса Dictionary<TKey, TValue> возвращает IEqualityComparer<TKey>, который используется при поиске и проверке ключей. Если comparer не передавали в конструктор, берётся сравнение по умолчанию для TKey.

Синтаксис

IEqualityComparer<TKey> comparer = map.Comparer;

Пример

Давайте сравним два одинаковых ключа через Comparer:

using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<string, int> map = new Dictionary<string, int>(); var cmp = map.Comparer; Console.WriteLine(cmp.Equals("abcde", "abcde")); } }

Результат выполнения кода:

True

Пример

Давайте передать свой comparer в конструктор:

using System; using System.Collections.Generic; class Program { static void Main() { var cmp = StringComparer.OrdinalIgnoreCase; Dictionary<string, int> map = new Dictionary<string, int>(cmp); map["abcde"] = 1; Console.WriteLine(map.Comparer.Equals("abcde", "ABCDE")); } }

Результат выполнения кода:

True

Пример

Давайте убедиться, что разные строки не равны:

using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<string, int> map = new Dictionary<string, int>(); Console.WriteLine(map.Comparer.Equals("abcde", "12345")); } }

Результат выполнения кода:

False

Смотрите также

  • интерфейс IEqualityComparer,
    который задаёт Equals и GetHashCode
  • метод ContainsKey,
    который опирается на comparer
  • класс SortedDictionary,
    который использует IComparer для порядка
  • свойство Keys,
    которое перечисляет ключи
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить