Comparer<T>.Compare(T, T) Метод

Определение

При переопределении в производном классе выполняет сравнение двух объектов одного типа и возвращает значение, показывающее, что один объект меньше или больше другого объекта или равен ему.When overridden in a derived class, performs a comparison of two objects of the same type and returns a value indicating whether one object is less than, equal to, or greater than the other.

public:
 abstract int Compare(T x, T y);
public abstract int Compare (T x, T y);
abstract member Compare : 'T * 'T -> int
Public MustOverride Function Compare (x As T, y As T) As Integer

Параметры

x
T

Первый из сравниваемых объектов.The first object to compare.

y
T

Второй из сравниваемых объектов.The second object to compare.

Возвращаемое значение

Знаковое целое число, которое определяет относительные значения параметров x и y, как показано в следующей таблице.A signed integer that indicates the relative values of x and y, as shown in the following table.

ЗначениеValue ЗначениеMeaning
Меньше нуляLess than zero Значение x меньше y.x is less than y.
НульZero x равняется y.x equals y.
Больше нуляGreater than zero Значение x больше значения y.x is greater than y.

Реализации

Исключения

Тип T не реализует универсальный интерфейс IComparable<T> или интерфейс IComparable.Type T does not implement either the IComparable<T> generic interface or the IComparable interface.

Примеры

В следующем примере определяется компаратор Box объектов, которые можно использовать вместо компаратора по умолчанию.The following example defines a comparer of Box objects that can be used instead of the default comparer. Этот пример является частью большого примера, приведенного для класса Comparer<T>.This example is part of a larger example provided for the Comparer<T> class.

public class BoxLengthFirst : Comparer<Box> 
{
    // Compares by Length, Height, and Width.
    public override int Compare(Box x, Box y)
    {
        if (x.Length.CompareTo(y.Length) != 0)
        {
            return x.Length.CompareTo(y.Length);
        }
        else if (x.Height.CompareTo(y.Height) != 0)
        {
            return x.Height.CompareTo(y.Height);
        }
        else if (x.Width.CompareTo(y.Width) != 0)
        {
            return x.Width.CompareTo(y.Width);
        }
        else
        {
            return 0;
        }
    }
}
Public Class BoxLengthFirst
    Inherits Comparer(Of Box)
    ' Compares by Length, Height, and Width.
    Public Overrides Function Compare(ByVal x As Box, ByVal y As Box) As Integer
        If x.Length.CompareTo(y.Length) <> 0 Then
            Return x.Length.CompareTo(y.Length)
        ElseIf x.Height.CompareTo(y.Height) <> 0 Then
            Return x.Height.CompareTo(y.Height)
        ElseIf x.Width.CompareTo(y.Width) <> 0 Then
            Return x.Width.CompareTo(y.Width)
        Else
            Return 0
        End If
    End Function

End Class

Комментарии

Реализуйте этот метод для предоставления настраиваемого сравнения порядка сортировки для типа T.Implement this method to provide a customized sort order comparison for type T.

Примечания для тех, кто реализует этот метод

Допускается сравнение null с любым ссылочным типом и не приводит к созданию исключения.Comparing null with any reference type is allowed and does not generate an exception. Пустая ссылка считается меньше любой ссылки, которая не имеет значение null.A null reference is considered to be less than any reference that is not null.

Дополнительные сведения о сравнении в зависимости от языка и региональных параметров см. в разделе System.Globalization пространство имен, Глобализация и локализация.For information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Применяется к

Дополнительно