Partage via


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

Définition

Compare deux objets et retourne une valeur indiquant si le premier est inférieur, égal ou supérieur au second.

public:
 int Compare(T x, T y);
public int Compare (T x, T y);
public int Compare (T? x, T? y);
abstract member Compare : 'T * 'T -> int
Public 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.

Value Signification
Inférieure à zérox est inférieur à y.
Zérox est égal à y.
Supérieure à zérox est supérieur à y.

Exemples

L’exemple suivant implémente l’interface IComparer<T> pour comparer des objets de type Box en fonction de leurs dimensions. Cet exemple fait partie d’un exemple plus grand fourni pour la Comparer<T> classe .

// This class is not demonstrated in the Main method
// and is provided only to show how to implement
// the interface. It is recommended to derive
// from Comparer<T> instead of implementing IComparer<T>.
public class BoxComp : IComparer<Box>
{
    // Compares by Height, Length, and Width.
    public int Compare(Box x, Box y)
    {
        if (x.Height.CompareTo(y.Height) != 0)
        {
            return x.Height.CompareTo(y.Height);
        }
        else if (x.Length.CompareTo(y.Length) != 0)
        {
            return x.Length.CompareTo(y.Length);
        }
        else if (x.Width.CompareTo(y.Width) != 0)
        {
            return x.Width.CompareTo(y.Width);
        }
        else
        {
            return 0;
        }
    }
}
' This class is not demonstrated in the Main method
' and is provided only to show how to implement
' the interface. It is recommended to derive
' from Comparer<T> instead of implementing IComparer<T>.
Public Class BoxComp
    Implements IComparer(Of Box)
    ' Compares by Height, Length, and Width.
    Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _
                                                IComparer(Of Box).Compare
        If x.Height.CompareTo(y.Height) <> 0 Then
            Return x.Height.CompareTo(y.Height)
        ElseIf x.Length.CompareTo(y.Length) <> 0 Then
            Return x.Length.CompareTo(y.Length)
        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.

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.

S’applique à

Voir aussi