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.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

Parametri

x
T

Primo oggetto da confrontare.The first object to compare.

y
T

Secondo oggetto da confrontare.The second object to compare.

Restituisce

Intero con segno che indica i valori relativi di x e y, come illustrato nella tabella seguente.A signed integer that indicates the relative values of x and y, as shown in the following table.

ValoreValue SignificatoMeaning
Minore di zeroLess than zero x è minore di y.x is less than y.
ZeroZero x è uguale a y.x equals y.
Maggiore di zeroGreater than zero x è maggiore di y.x is greater than y.

Implementazioni

Eccezioni

Il tipo T non implementa l'interfaccia generica IComparable<T> o l'interfaccia IComparable.Type T does not implement either the IComparable<T> generic interface or the IComparable interface.

Esempi

Nell'esempio seguente viene definito un operatore di confronto di oggetti Box che è possibile utilizzare al posto dell'operatore di confronto predefinito.The following example defines a comparer of Box objects that can be used instead of the default comparer. Questo esempio fa parte di un esempio più ampio fornito per la classe 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

Commenti

Implementare questo metodo per fornire un confronto di ordinamento personalizzato per il tipo T.Implement this method to provide a customized sort order comparison for type T.

Note per gli implementatori

Il confronto di null con qualsiasi tipo di riferimento è consentito e non genera un'eccezione.Comparing null with any reference type is allowed and does not generate an exception. Un riferimento null è considerato minore di qualsiasi riferimento non null.A null reference is considered to be less than any reference that is not null.

Per informazioni sui confronti specifici delle impostazioni cultura, vedere lo spazio dei nomi System.Globalization e la globalizzazione e localizzazione.For information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Si applica a

Vedi anche