Comparer<T>.Compare(T, T) Méthode

Définition

En cas de substitution dans une classe dérivée, effectue une comparaison de deux objets du même type et retourne une valeur indiquant si un objet est inférieur, égal ou supérieur à l’autre.

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

Paramètres

x
T

Premier objet à comparer.

y
T

Deuxième objet à comparer.

Retours

Entier signé qui indique les valeurs relatives de x et y, comme indiqué dans le tableau suivant.

Valeur Signification
Inférieur à zéro x est inférieur à y.
Zéro x est égal à y.
Supérieur à zéro x est supérieur à y.

Implémente

Exceptions

Le type T n’implémente pas l’interface IComparable<T> générique ou l’interface IComparable .

Exemples

L’exemple suivant définit un comparateur d’objets Box qui peuvent être utilisés au lieu du comparateur par défaut. Cet exemple fait partie d’un exemple plus large fourni pour 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;
        }
    }
}
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

Remarques

Implémentez cette méthode pour fournir une comparaison d’ordre de tri personnalisée pour le type T.

Notes pour les responsables de l’implémentation

La comparaison null avec n’importe quel type de référence est autorisée et ne génère pas d’exception. Une référence Null est considérée comme inférieure à toute référence qui n’est pas null.

Pour plus d’informations sur les comparaisons propres à la culture, consultez l’espace de noms et la System.Globalizationglobalisation et la localisation.

S’applique à

Voir aussi