Интерфейс IEquatable
Интерфейс IEquatable<T> объявляет
метод Equals
без упаковки. Базовые типы вроде int
его реализуют, что ускоряет Contains.
Синтаксис
bool Equals(T other);
Пример
Давайте сравним два int:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Console.WriteLine(1.Equals(1));
}
}
Результат выполнения кода:
True
Пример
Давайте получим False для разных:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Console.WriteLine(1.Equals(2));
}
}
Результат выполнения кода:
False
Пример
Давайте проверим 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(3));
}
}
Результат выполнения кода:
True
Пример
Давайте сравним строки:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
string a = "abcde";
Console.WriteLine(a.Equals("abcde"));
}
}
Результат выполнения кода:
True
Смотрите также
-
метод
Equals,
который проверяет равенство -
интерфейс
IEqualityComparer,
который задаёт чужое равенство -
класс
EqualityComparer,
который даёт готовые comparer -
метод
Contains,
который использует равенство элементов