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

Definition

När det åsidosätts i en härledd klass, utför en jämförelse av två objekt av samma typ och returnerar ett värde som anger om ett objekt är mindre än, lika med eller större än det andra.

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

Parametrar

x
T

Det första objektet som ska jämföras.

y
T

Det andra objektet att jämföra.

Returer

Ett signerat heltal som anger de relativa värdena x för och y, enligt följande tabell.

Värde Menande
Mindre än noll x är mindre än y.
Noll x är lika med y.
Större än noll x är större än y.

Implementeringar

Undantag

Typen T implementerar inte det IComparable<T> allmänna gränssnittet eller IComparable gränssnittet.

Exempel

I följande exempel definieras en jämförelse av Box objekt som kan användas i stället för standardjäxaren. Det här exemplet är en del av ett större exempel som tillhandahålls Comparer<T> för klassen.

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;
        }
    }
}
type BoxLengthFirst() =
    inherit Comparer<Box>()

    // Compares by Length, Height, and Width.
    override _.Compare(x: Box, y: Box) =
        if x.Length.CompareTo y.Length <> 0 then
            x.Length.CompareTo y.Length
        elif x.Height.CompareTo y.Height <> 0 then
            x.Height.CompareTo y.Height
        elif x.Width.CompareTo y.Width <> 0 then
            x.Width.CompareTo y.Width
        else
            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

Kommentarer

Implementera den här metoden för att tillhandahålla en anpassad sorteringsordningsjämförelse för typen T.

Anteckningar till implementerare

Det är tillåtet att null jämföra med alla referenstyper och genererar inget undantag. En null-referens anses vara mindre än en referens som inte är null.

Information om kulturspecifika jämförelser finns i System.Globalization namnområdet och Globalisering och lokalisering.

Gäller för

Se även