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.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

 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.The first object to compare.

y
Object

Deuxième objet à comparer.The second object to compare.

Retours

Int32

Entier signé qui indique les valeurs relatives de x et y, comme indiqué dans le tableau suivant.A signed integer that indicates the relative values of x and y, as shown in the following table.

ValueValue SignificationMeaning
Inférieure à zéroLess than zero x est inférieur à y.x is less than y.
ZéroZero x est égal à y.x equals y.
Supérieure à zéroGreater than zero x est supérieur à y.x is greater than y.

Implémente

Exceptions

x ou y est d'un type qui ne peut pas être casté en type T.x or y is of a type that cannot be cast to type T.

- ou --or- x et y n'implémentent pas l'interface générique IComparable<T> ni l'interface IComparable.x and y do not implement either the IComparable<T> generic interface or the IComparable interface.

Exemples

L’exemple suivant montre comment utiliser la IComparer.Compare méthode pour comparer deux objets.The following example shows how to use the IComparer.Compare method to compare two objects. Cet exemple fait partie d’un exemple plus complet fourni pour la Comparer<T> classe.This example is part of a larger example provided for the Comparer<T> class.


// 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 ; par conséquent, obj doit être casté en type spécifié par l’argument générique T de l’instance actuelle.This method is a wrapper for the Compare(T, T) method, so obj must be cast to the type specified by the generic argument T of the current instance. S’il ne peut pas être casté en T , une ArgumentException exception est levée.If it cannot be cast to T, an ArgumentException is thrown.

La comparaison null avec n’importe quel type référence est autorisée et ne génère pas d’exception.Comparing null with any reference type is allowed and does not generate an exception. Lors du tri, null est considéré comme inférieur à tout autre objet.When sorting, null is considered to be less than any other object.

Notes pour les appelants

Compare(T, T) et System.Collections.Generic.EqualityComparer`1.Equals(\`0,\`0) se comportent différemment en termes de sensibilité à la culture et de respect de la casse. Compare(T, T) and System.Collections.Generic.EqualityComparer`1.Equals(\`0,\`0) behave differently in terms of culture-sensitivity and case-sensitivity.

Pour les comparaisons de chaînes, la StringComparer classe est recommandée par rapport à la < chaîne > de comparateur.For string comparisons, the StringComparer class is recommended over 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 sensibilité de la culture et de respect de la casse.Properties of the StringComparer class return predefined instances that perform string comparisons with different combinations of culture-sensitivity and case-sensitivity. Le respect de la casse et le respect de la culture sont cohérents entre les membres de la même StringComparer instance.The case-sensitivity and culture-sensitivity are consistent among the members of the same StringComparer instance.

Pour plus d’informations sur les comparaisons spécifiques à la culture, consultez l' System.Globalization espace de noms et la globalisation et la localisation.For more information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

S’applique à

Voir aussi