Comparer<T>.IComparer.Compare(Object, Object) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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éro | x est inférieur à y .
|
Zéro | x est égal à y .
|
Supérieure à zéro | x 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.