# IComparer<T>IComparer<T>IComparer<T>IComparer<T> Interface

## Определение

Определяет метод, реализуемый типом для сравнения двух объектов.Defines a method that a type implements to compare two objects.

``````generic <typename T>
public interface class IComparer``````
``public interface IComparer<in T>``
``type IComparer<'T> = interface``
``Public Interface IComparer(Of In T)``

#### Параметры типа

T

Тип объектов для сравнения.The type of objects to compare.

Производный

## Примеры

В следующем примере реализуется IComparer<T> интерфейс для сравнения объектов типа `Box` в соответствии со своими измерениями.The following example implements the IComparer<T> interface to compare objects of type `Box` according to their dimensions. Этот пример является частью большего примера для Comparer<T> класса.This example is part of a larger example provided for the Comparer<T> class.

``````// This class is not demonstrated in the Main method
// and is provided only to show how to implement
// the interface. It is recommended to derive
// from Comparer<T> instead of implementing IComparer<T>.
public class BoxComp : IComparer<Box>
{
// Compares by Height, Length, and Width.
public int Compare(Box x, Box y)
{
if (x.Height.CompareTo(y.Height) != 0)
{
return x.Height.CompareTo(y.Height);
}
else if (x.Length.CompareTo(y.Length) != 0)
{
return x.Length.CompareTo(y.Length);
}
else if (x.Width.CompareTo(y.Width) != 0)
{
return x.Width.CompareTo(y.Width);
}
else
{
return 0;
}
}
}
``````
``````' This class is not demonstrated in the Main method
' and is provided only to show how to implement
' the interface. It is recommended to derive
' from Comparer<T> instead of implementing IComparer<T>.
Public Class BoxComp
Implements IComparer(Of Box)
' Compares by Height, Length, and Width.
Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _
IComparer(Of Box).Compare
If x.Height.CompareTo(y.Height) <> 0 Then
Return x.Height.CompareTo(y.Height)
ElseIf x.Length.CompareTo(y.Length) <> 0 Then
Return x.Length.CompareTo(y.Length)
ElseIf x.Width.CompareTo(y.Width) <> 0 Then
Return x.Width.CompareTo(y.Width)
Else
Return 0
End If
End Function
End Class
``````

## Комментарии

Этот интерфейс используется с List<T>.Sort и List<T>.BinarySearch методы.This interface is used with the List<T>.Sort and List<T>.BinarySearch methods. Он предоставляет способ настраивать порядок сортировки коллекции.It provides a way to customize the sort order of a collection. Классы, реализующие этот интерфейс включают SortedDictionary<TKey,TValue> и SortedList<TKey,TValue> универсальных классов.Classes that implement this interface include the SortedDictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes.

По умолчанию этот интерфейс реализуется Comparer<T> класса.The default implementation of this interface is the Comparer<T> class. StringComparer Класс реализует этот интерфейс для типа String.The StringComparer class implements this interface for type String.

Этот интерфейс поддерживает упорядочивания сравнения.This interface supports ordering comparisons. То есть, когда Compare метод возвращает значение 0, это значит, что два объекта отсортировать же.That is, when the Compare method returns 0, it means that two objects sort the same. Реализация точное равенство обеспечивается IEqualityComparer<T> универсальный интерфейс.Implementation of exact equality comparisons is provided by the IEqualityComparer<T> generic interface.

Мы рекомендуем, являются производными от Comparer<T> класса вместо реализации IComparer<T> интерфейс, так как Comparer<T> класс предоставляет явную реализацию интерфейса из IComparer.Compare метод и Default свойство, Возвращает функцию сравнения по умолчанию для объекта.We recommend that you derive from the Comparer<T> class instead of implementing the IComparer<T> interface, because the Comparer<T> class provides an explicit interface implementation of the IComparer.Compare method and the Default property that gets the default comparer for the object.

## Методы

 Compare(T, T) Compare(T, T) Compare(T, T) Compare(T, T) Сравнение двух объектов и возврат значения, указывающего, является ли один объект меньшим, равным или большим другого.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.