Comparer<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.
När det åsidosätts i en härledd klass, utför en jämförelse av två objekt av samma typ och returnerar ett värde som anger om ett objekt är mindre än, lika med eller större än det andra.
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
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.
|
Implementeringar
Undantag
Typen T implementerar inte det IComparable<T> allmänna gränssnittet eller IComparable gränssnittet.
Exempel
I följande exempel definieras en jämförelse av Box objekt som kan användas i stället för standardjäxaren. Det här exemplet är en del av ett större exempel som tillhandahålls Comparer<T> för klassen.
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
Kommentarer
Implementera den här metoden för att tillhandahålla en anpassad sorteringsordningsjämförelse för typen T.
Anteckningar till implementerare
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.
Information om kulturspecifika jämförelser finns i System.Globalization namnområdet och Globalisering och lokalisering.