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 un objet est inférieur, égal ou supérieur à l’autre.
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.
| 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
x ou y est d’un type qui ne peut pas être converti en type T.
- ou -
x et y n’implémentez pas l’interface IComparable<T> générique ou 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 large 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.
let LengthFirst = BoxLengthFirst()
let bc = LengthFirst :> Comparer<Box>
let BoxA = Box(2, 6, 8)
let BoxB = Box(10, 12, 14)
let x = LengthFirst.Compare(BoxA, BoxB)
printfn $"\n{x}"
' 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, un 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 à n’importe quel autre objet.
Notes pour les appelants
Compare(T, T) et Equals(T, T) se comporter différemment en termes de sensibilité de la culture et de sensibilité à 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 sensibilité à la casse. La sensibilité à la casse et la sensibilité à la culture sont cohérentes entre les membres de la même StringComparer instance.
Pour plus d’informations sur les comparaisons propres à la culture, consultez l’espace de noms et la System.Globalizationglobalisation et la localisation.