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

Свойство Comparer

Свойство Comparer класса HashSet<T> возвращает IEqualityComparer<T>, который используется для сравнения элементов и вычисления хеш-кода. Если при создании компаратор не передан, берётся сравнение по умолчанию для типа T.

Синтаксис

IEqualityComparer<T> comparer = set.Comparer;

Пример

Давайте создадим множество строк с учётом регистра:

using System; using System.Collections.Generic; class Program { static void Main() { HashSet<string> items = new HashSet<string>(); items.Add("a"); Console.WriteLine(items.Contains("A")); } }

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

False

Пример

Давайте передадим StringComparer.OrdinalIgnoreCase в конструктор:

using System; using System.Collections.Generic; class Program { static void Main() { HashSet<string> items = new HashSet<string>( StringComparer.OrdinalIgnoreCase); items.Add("a"); Console.WriteLine(items.Contains("A")); } }

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

True

Пример

Давайте сравним тип компаратора у двух множеств:

using System; using System.Collections.Generic; class Program { static void Main() { HashSet<string> a = new HashSet<string>( StringComparer.Ordinal); HashSet<string> b = new HashSet<string>( StringComparer.OrdinalIgnoreCase); bool same = a.Comparer.Equals(b.Comparer); Console.WriteLine(same); } }

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

False

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

  • метод Contains,
    который ищет элемент через Comparer
  • метод TryGetValue,
    который возвращает сохранённое равное значение
  • класс SortedSet,
    который использует порядковый компаратор
  • интерфейс IEquatable,
    который задаёт сравнение экземпляров
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить