Описание тега iequalitycomparer
Этот интерфейс позволяет реализовать настраиваемое сравнение на равенство для коллекций. То есть вы можете создать собственное определение равенства и указать, что это определение будет использоваться с типом коллекции, который принимает интерфейс IEqualityComparer. В.NET Framework конструкторы типов коллекций Hashtable, NameValueCollection и OrderedDictionary принимают этот интерфейс.
Этот интерфейс поддерживает только сравнения на равенство. Настройка сравнений для сортировки и упорядочивания обеспечивается интерфейсом IComparer.
Для общей версии этого интерфейса см. System.Collections.Generic.IEqualityComparer(Of T).
В следующем примере кода демонстрируется реализация IEqualityComparer без учета регистра. В этом примере метод CaseInsensitiveComparer.Compare используется для определения равенства двух объектов на основе предоставленной CultureInfo.
class myCultureComparer : IEqualityComparer
{
public CaseInsensitiveComparer myComparer;
public myCultureComparer()
{
myComparer = CaseInsensitiveComparer.DefaultInvariant;
}
public myCultureComparer(CultureInfo myCulture)
{
myComparer = new CaseInsensitiveComparer(myCulture);
}
publicnewbool Equals(object x, object y)
{
if (myComparer.Compare(x, y) == 0)
{
returntrue;
}
else
{
returnfalse;
}
}
publicint GetHashCode(object obj)
{
return obj.ToString().ToLower().GetHashCode();
}
}
Источник: MSDN