Condividi tramite


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

Definizione

Confronta due oggetti e restituisce un valore indicante se uno è minore, uguale o maggiore dell'altro.

 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.

y
Object

Secondo oggetto da confrontare.

Restituisce

Intero con segno che indica i valori relativi di x e y, come illustrato nella tabella seguente.

Valore Significato
Minore di zerox è minore di y.
Zerox è uguale a y.
Maggiore di zerox è maggiore di y.

Implementazioni

Eccezioni

Il tipo del parametro x o y non consente di effettuare il cast al tipo T.

-oppure-

I parametri x e y non implementano l'interfaccia generica IComparable<T> o l'interfaccia IComparable.

Esempio

Nell'esempio seguente viene illustrato come usare il IComparer.Compare metodo per confrontare due oggetti. Questo esempio fa parte di un esempio più grande fornito per 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())

Commenti

Questo metodo è un wrapper per il Compare(T, T) metodo, quindi obj deve essere eseguito il cast al tipo specificato dall'argomento T generico dell'istanza corrente. Se non è possibile eseguire il cast in T, viene generato un ArgumentException oggetto .

Il confronto null con qualsiasi tipo di riferimento è consentito e non genera un'eccezione. Quando si ordina, null viene considerato minore di qualsiasi altro oggetto.

Note per i chiamanti

Compare(T, T) e Equals(T, T) si comportano in modo diverso in termini di riservatezza delle impostazioni cultura e di riservatezza dei casi.

Per i confronti di stringhe, la StringComparer classe è consigliata su Comparer<String>. Le proprietà della StringComparer classe restituiscono istanze predefinite che eseguono confronti di stringhe con combinazioni diverse di riservatezza delle impostazioni cultura e di distinzione tra maiuscole e minuscole. La distinzione tra maiuscole e minuscole e la riservatezza delle impostazioni cultura sono coerenti tra i membri della stessa StringComparer istanza.

Per altre informazioni sui confronti specifici delle impostazioni cultura, vedere lo spazio dei nomi e la globalizzazione e laSystem.Globalization localizzazione.

Si applica a

Vedi anche