IComparer<T>.Compare(T, T) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Jämför två objekt och returnerar ett värde som anger om det ena är mindre än, lika med eller större än det andra.
public:
int Compare(T x, T y);
public int Compare(T x, T y);
abstract member Compare : 'T * 'T -> int
Public Function Compare (x As T, y As T) As Integer
Parametrar
- x
- T
Det första objektet som ska jämföras.
- y
- T
Det andra objektet att jämföra.
Returer
Ett signerat heltal som anger de relativa värdena x för och y, enligt följande tabell.
| Värde | Menande |
|---|---|
| Mindre än noll |
x är mindre än y.
|
| Noll |
x är lika med y.
|
| Större än noll |
x är större än y.
|
Exempel
I följande exempel implementeras IComparer<T> gränssnittet för att jämföra objekt av typen Box efter deras dimensioner. Det här exemplet är en del av ett större exempel som tillhandahålls Comparer<T> för klassen.
// This class is not demonstrated in the Main method
// and is provided only to show how to implement
// the interface. It is recommended to derive
// from Comparer<T> instead of implementing IComparer<T>.
public class BoxComp : IComparer<Box>
{
// Compares by Height, Length, and Width.
public int Compare(Box x, Box y)
{
if (x.Height.CompareTo(y.Height) != 0)
{
return x.Height.CompareTo(y.Height);
}
else if (x.Length.CompareTo(y.Length) != 0)
{
return x.Length.CompareTo(y.Length);
}
else if (x.Width.CompareTo(y.Width) != 0)
{
return x.Width.CompareTo(y.Width);
}
else
{
return 0;
}
}
}
' This class is not demonstrated in the Main method
' and is provided only to show how to implement
' the interface. It is recommended to derive
' from Comparer<T> instead of implementing IComparer<T>.
Public Class BoxComp
Implements IComparer(Of Box)
' Compares by Height, Length, and Width.
Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _
IComparer(Of Box).Compare
If x.Height.CompareTo(y.Height) <> 0 Then
Return x.Height.CompareTo(y.Height)
ElseIf x.Length.CompareTo(y.Length) <> 0 Then
Return x.Length.CompareTo(y.Length)
ElseIf x.Width.CompareTo(y.Width) <> 0 Then
Return x.Width.CompareTo(y.Width)
Else
Return 0
End If
End Function
End Class
Kommentarer
Implementera den här metoden för att tillhandahålla en anpassad sorteringsordningsjämförelse för typen T.
Det är tillåtet att null jämföra med alla referenstyper och genererar inget undantag. En null-referens anses vara mindre än en referens som inte är null.