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

Интерфейс IEqualityComparer

Интерфейс IEqualityComparer<T> объявляет Equals и GetHashCode для сравнения объектов по выбранному правилу.

Синтаксис

bool Equals(T x, T y); int GetHashCode(T obj);

Пример

Давайте возьмём EqualityComparer.Default:

using System; using System.Collections.Generic; class Program { static void Main() { var cmp = EqualityComparer<int>.Default; Console.WriteLine(cmp.Equals(1, 1)); } }

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

True

Пример

Давайте сравним разные int:

using System; using System.Collections.Generic; class Program { static void Main() { var cmp = EqualityComparer<int>.Default; Console.WriteLine(cmp.Equals(1, 2)); } }

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

False

Пример

Давайте получим GetHashCode:

using System; using System.Collections.Generic; class Program { static void Main() { var cmp = EqualityComparer<int>.Default; Console.WriteLine(cmp.GetHashCode(5) == cmp.GetHashCode(5)); } }

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

True

Пример

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

using System; using System.Collections.Generic; class Program { static void Main() { var cmp = StringComparer.OrdinalIgnoreCase; Console.WriteLine(cmp.Equals("abcde", "ABCDE")); } }

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

True

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

  • класс EqualityComparer,
    который помогает создать comparer
  • интерфейс IEquatable,
    который сравнивает объект с другим
  • метод Equals,
    который проверяет равенство пары
  • метод GetHashCode,
    который возвращает хеш объекта
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить