Partager via


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

Définition

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

 virtual int System.Collections.IComparer.Compare(System::Object ^ x, System::Object ^ y) = System::Collections::IComparer::Compare;
int IComparer.Compare (object x, object y);
abstract member System.Collections.IComparer.Compare : obj * obj -> int
override this.System.Collections.IComparer.Compare : obj * obj -> int
Function Compare (x As Object, y As Object) As Integer Implements IComparer.Compare

Paramètres

x
Object

Premier objet à comparer.

y
Object

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.

Implémente

Exceptions

x ou y est d'un type qui ne peut pas être casté en type T.

- ou -

x et y n'implémentent pas l'interface générique IComparable<T> ni l'interface IComparable.

Exemples

L’exemple suivant montre comment utiliser la IComparer.Compare méthode pour comparer deux objets. Cet exemple fait partie d’un exemple plus grand fourni pour la Comparer<T> classe .


// This explicit interface implementation
// compares first by the length.
// Returns -1 because the length of BoxA
// is less than the length of BoxB.
BoxLengthFirst LengthFirst = new BoxLengthFirst();

Comparer<Box> bc = (Comparer<Box>) LengthFirst;

Box BoxA = new Box(2, 6, 8);
Box BoxB = new Box(10, 12, 14);
int x = LengthFirst.Compare(BoxA, BoxB);
Console.WriteLine();
Console.WriteLine(x.ToString());

' This explicit interface implementation
' compares first by the length.
' Returns -1 because the length of BoxA
' is less than the length of BoxB.
Dim LengthFirst As New BoxLengthFirst()

Dim bc As Comparer(Of Box) = CType(LengthFirst, Comparer(Of Box))

Dim BoxA As New Box(2, 6, 8)
Dim BoxB As New Box(10, 12, 14)
Dim x As Integer = LengthFirst.Compare(BoxA, BoxB)
Console.WriteLine()
Console.WriteLine(x.ToString())

Remarques

Cette méthode est un wrapper pour la Compare(T, T) méthode. Elle doit donc obj être convertie en type spécifié par l’argument T générique de l’instance actuelle. S’il ne peut pas être converti en T, une ArgumentException est levée.

La comparaison null avec n’importe quel type de référence est autorisée et ne génère pas d’exception. Lors du tri, null est considéré comme inférieur à tout autre objet.

Notes pour les appelants

Compare(T, T) et Equals(T, T) se comportent différemment en termes de respect de la culture et de respect de la casse.

Pour les comparaisons de chaînes, la StringComparer classe est recommandée sur Comparer<String>. Les propriétés de la StringComparer classe retournent des instances prédéfinies qui effectuent des comparaisons de chaînes avec différentes combinaisons de respect de la culture et de respect de la casse. Le respect de la casse et le respect de la culture sont cohérents entre les membres d’un même StringComparer instance.

Pour plus d’informations sur les comparaisons spécifiques à la culture, consultez espace System.Globalization de noms et Globalisation et Localisation.

S’applique à

Voir aussi