Comparer<T>.Compare(T, T) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Quando è sottoposto a override in una classe derivata, esegue un confronto tra due oggetti dello stesso tipo e restituisce un valore che indica se un oggetto è minore, uguale o maggiore dell'altro.
public:
abstract int Compare(T x, T y);
public abstract int Compare (T x, T y);
public abstract int Compare (T? x, T? y);
abstract member Compare : 'T * 'T -> int
Public MustOverride Function Compare (x As T, y As T) As Integer
Parametri
- x
- T
Primo oggetto da confrontare.
- y
- T
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 zero |
x è minore di y.
|
| Zero |
x è uguale a y.
|
| Maggiore di zero |
x è maggiore di y.
|
Implementazioni
Eccezioni
Il tipo T non implementa l'interfaccia generica IComparable<T> o l'interfaccia IComparable.
Esempio
Nell'esempio seguente viene definito un operatore di confronto di Box oggetti che è possibile usare anziché l'operatore di confronto predefinito. Questo esempio fa parte di un esempio più ampio fornito per la Comparer<T> classe .
public class BoxLengthFirst : Comparer<Box>
{
// Compares by Length, Height, and Width.
public override int Compare(Box x, Box y)
{
if (x.Length.CompareTo(y.Length) != 0)
{
return x.Length.CompareTo(y.Length);
}
else if (x.Height.CompareTo(y.Height) != 0)
{
return x.Height.CompareTo(y.Height);
}
else if (x.Width.CompareTo(y.Width) != 0)
{
return x.Width.CompareTo(y.Width);
}
else
{
return 0;
}
}
}
Public Class BoxLengthFirst
Inherits Comparer(Of Box)
' Compares by Length, Height, and Width.
Public Overrides Function Compare(ByVal x As Box, ByVal y As Box) As Integer
If x.Length.CompareTo(y.Length) <> 0 Then
Return x.Length.CompareTo(y.Length)
ElseIf x.Height.CompareTo(y.Height) <> 0 Then
Return x.Height.CompareTo(y.Height)
ElseIf x.Width.CompareTo(y.Width) <> 0 Then
Return x.Width.CompareTo(y.Width)
Else
Return 0
End If
End Function
End Class
Commenti
Implementare questo metodo per fornire un confronto personalizzato degli ordini di ordinamento per il tipo T.
Note per gli implementatori
Il confronto null con qualsiasi tipo di riferimento è consentito e non genera un'eccezione. Un riferimento Null viene considerato minore di qualsiasi riferimento diverso da Null.
Per informazioni sui confronti specifici delle impostazioni cultura, vedere lo spazio dei nomi e la System.Globalizationglobalizzazione e la localizzazione.