Comparer<T>.Compare(T, T) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se reemplaza en una clase derivada, realiza una comparación de dos objetos del mismo tipo y devuelve un valor que indica si un objeto es menor, igual o mayor que el otro.
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
Parámetros
- x
- T
Primer objeto que se va a comparar.
- y
- T
Segundo objeto que se va a comparar.
Devoluciones
Entero con signo que indica los valores relativos de x y y, como se muestra en la tabla siguiente.
| Valor | Significado |
|---|---|
| Menor que cero |
x es menor que y.
|
| Cero |
x es igual a y.
|
| Mayor que cero |
x es mayor que y.
|
Implementaciones
Excepciones
El tipo T no implementa la IComparable<T> interfaz genérica ni la IComparable interfaz .
Ejemplos
En el ejemplo siguiente se define un comparador de Box objetos que se pueden usar en lugar del comparador predeterminado. Este ejemplo forma parte de un ejemplo más grande proporcionado para la Comparer<T> clase .
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
Comentarios
Implemente este método para proporcionar una comparación de criterio de ordenación personalizada para el tipo T.
Notas a los implementadores
null Se permite comparar con cualquier tipo de referencia y no genera una excepción. Una referencia nula se considera menor que cualquier referencia que no sea NULL.
Para obtener información sobre las comparaciones específicas de la referencia cultural, consulte el espacio de nombres y System.Globalization la localización.