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);
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

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.

Esempi

Nell'esempio seguente viene illustrato come utilizzare il metodo IComparer.Compare 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 classe Comparer<T>.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 metodo Compare(T, T), pertanto è necessario eseguire il cast obj 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 in T, viene generata un'ArgumentException.If it cannot be cast to T, an ArgumentException is thrown.

Il confronto di null 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) e System.Collections.Generic.EqualityComparer`1.Equals(\`0,\`0) si comportano in modo diverso in termini di 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, è consigliabile usare la classe StringComparer per l'operatore di confronto <>stringa.For string comparisons, the StringComparer class is recommended over Comparer<String>. Le proprietà della classe StringComparer 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 istanza di StringComparer.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 spazio dei nomi System.Globalization e la [globalizzazione e localizzazione](~/docs/standard/globalization-localization/index.md).For more information on culture-specific comparisons, see the System.Globalization namespace and [Globalization and Localization](~/docs/standard/globalization-localization/index.md).

Si applica a

Vedi anche