Comparer<T>.Compare(T, T) Metodo

Definizione

Quando è sottoposto a override in una classe derivata, esegue un confronto tra due oggetti dello stesso tipo e restituisce un valore che indica se un oggetto è minore, uguale o maggiore dell'altro.

public:
 abstract int Compare(T x, T y);
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

Parametri

x
T

Primo oggetto da confrontare.

y
T

Secondo oggetto da confrontare.

Restituisce

Int32

Intero con segno che indica i valori relativi di x e y, come illustrato nella tabella seguente.

Valore Significato
Minore di zero x è minore di y.
Zero x è uguale a y.
Maggiore di zero x è maggiore di y.

Implementazioni

Eccezioni

Il tipo T non implementa l'interfaccia generica IComparable<T> o l'interfaccia IComparable.

Esempio

Nell'esempio seguente viene definito un operatore di confronto di Box oggetti che è possibile usare anziché l'operatore di confronto predefinito. Questo esempio fa parte di un esempio più ampio fornito per la Comparer<T> classe .

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

Commenti

Implementare questo metodo per fornire un confronto personalizzato degli ordini di ordinamento per il tipo T.

Note per gli implementatori

Il confronto null con qualsiasi tipo di riferimento è consentito e non genera un'eccezione. Un riferimento Null viene considerato minore di qualsiasi riferimento diverso da Null.

Per informazioni sui confronti specifici delle impostazioni cultura, vedere lo spazio dei nomi e la System.Globalization globalizzazione e la localizzazione.

Si applica a

Vedi anche