Класс EqualityComparer
Класс EqualityComparer<T> реализует
IEqualityComparer<T>.
Свойство Default
возвращает comparer по умолчанию.
Синтаксис
EqualityComparer<T> cmp = EqualityComparer<T>.Default;
Пример
Давайте сравним int через Default:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Console.WriteLine(EqualityComparer<int>.Default.Equals(2, 2));
}
}
Результат выполнения кода:
True
Пример
Давайте сравним хеш числа с самим собой:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Console.WriteLine(EqualityComparer<int>.Default.GetHashCode(1) == EqualityComparer<int>.Default.GetHashCode(1));
}
}
Результат выполнения кода:
True
Пример
Давайте проверим Contains:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
Console.WriteLine(nums.Contains(4));
}
}
Результат выполнения кода:
True
Пример
Давайте сравним строки:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Console.WriteLine(EqualityComparer<string>.Default.Equals("a", "a"));
}
}
Результат выполнения кода:
True
Смотрите также
-
свойство
Default,
которое возвращает comparer типа -
класс
Comparer,
который отвечает за порядок -
интерфейс
IEqualityComparer,
который описывает контракт -
интерфейс
IEquatable,
который ускоряет сравнение