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 di 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);
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.
Valori restituiti
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 IComparable<T> generica o l'interfaccia IComparable .
Esempio
Nell'esempio seguente viene definito un operatore di confronto di Box oggetti che possono essere utilizzati 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;
}
}
}
type BoxLengthFirst() =
inherit Comparer<Box>()
// Compares by Length, Height, and Width.
override _.Compare(x: Box, y: Box) =
if x.Length.CompareTo y.Length <> 0 then
x.Length.CompareTo y.Length
elif x.Height.CompareTo y.Height <> 0 then
x.Height.CompareTo y.Height
elif x.Width.CompareTo y.Width <> 0 then
x.Width.CompareTo y.Width
else
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 che non sia Null.
Per informazioni sui confronti specifici delle impostazioni cultura, vedere lo spazio dei nomi e la System.Globalizationglobalizzazione e la localizzazione.