Comparer<T>.IComparer.Compare(Object, Object) Metodo

Definizione

Confronta due oggetti e restituisce un valore indicante se uno è minore, uguale o maggiore dell'altro.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

Parametri

x
Object

Primo oggetto da confrontare.The first object to compare.

y
Object

Secondo oggetto da confrontare.The second object to compare.

Restituisce

Int32

Intero con segno che indica i valori relativi di x e y, come illustrato nella tabella seguente.A signed integer that indicates the relative values of x and y, as shown in the following table.

ValoreValue SignificatoMeaning
Minore di zeroLess than zero x è minore di y.x is less than y.
ZeroZero x è uguale a y.x equals y.
Maggiore di zeroGreater than zero x è maggiore di y.x is greater than y.

Implementazioni

Eccezioni

Il tipo del parametro x o y non consente di effettuare il cast al tipo T.x or y is of a type that cannot be cast to type T.

-oppure--or- I parametri x e y non implementano l'interfaccia generica IComparable<T> o l'interfaccia IComparable.x and y do not implement either the IComparable<T> generic interface or the IComparable interface.

Esempio

Nell'esempio seguente viene illustrato come utilizzare il IComparer.Compare metodo per confrontare due oggetti.The following example shows how to use the IComparer.Compare method to compare two objects. Questo esempio fa parte di un esempio più ampio fornito per 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())

Commenti

Questo metodo è un wrapper per il Compare(T, T) metodo, pertanto obj deve essere eseguito il cast al tipo specificato dall'argomento generico T dell'istanza corrente.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. Se non è possibile eseguire il cast a T , ArgumentException viene generata un'eccezione.If it cannot be cast to T, an ArgumentException is thrown.

nullIl confronto con qualsiasi tipo di riferimento è consentito e non genera un'eccezione.Comparing null with any reference type is allowed and does not generate an exception. Quando si esegue l'ordinamento, null è considerato minore di qualsiasi altro oggetto.When sorting, null is considered to be less than any other object.

Note per i chiamanti

Compare(T, T) si System.Collections.Generic.EqualityComparer`1.Equals(\`0,\`0) comportano in modo diverso in termini di distinzione tra impostazioni cultura e distinzione tra maiuscole e minuscole Compare(T, T) and System.Collections.Generic.EqualityComparer`1.Equals(\`0,\`0) behave differently in terms of culture-sensitivity and case-sensitivity.

Per i confronti tra stringhe, la StringComparer classe è consigliata sulla < stringa > di confronto.For string comparisons, the StringComparer class is recommended over Comparer<String>. Le proprietà della StringComparer classe restituiscono istanze predefinite che eseguono confronti tra stringhe con combinazioni diverse di distinzione tra impostazioni cultura e distinzione tra maiuscole e minuscole.Properties of the StringComparer class return predefined instances that perform string comparisons with different combinations of culture-sensitivity and case-sensitivity. La distinzione tra maiuscole e minuscole e la distinzione delle impostazioni cultura sono coerenti tra i membri della stessa StringComparer istanza.The case-sensitivity and culture-sensitivity are consistent among the members of the same StringComparer instance.

Per ulteriori informazioni sui confronti specifici delle impostazioni cultura, vedere lo System.Globalization spazio dei nomi e la globalizzazione e localizzazione.For more information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Si applica a

Vedi anche