Comparer<T>.IComparer.Compare(Object, Object) Método

Definición

Compara dos objetos y devuelve un valor que indica si uno de ellos es menor, igual o mayor que el otro.

 virtual int System.Collections.IComparer.Compare(System::Object ^ x, System::Object ^ y) = System::Collections::IComparer::Compare;
int IComparer.Compare (object x, object y);
abstract member System.Collections.IComparer.Compare : obj * obj -> int
override this.System.Collections.IComparer.Compare : obj * obj -> int
Function Compare (x As Object, y As Object) As Integer Implements IComparer.Compare

Parámetros

x
Object

Primer objeto que se va a comparar.

y
Object

Segundo objeto que se va a comparar.

Devoluciones

Int32

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 que y.
Mayor que cero x es mayor que y.

Implementaciones

Excepciones

El tipo de x o y no se puede convertir al tipo T.

o bien x e y no implementan la interfaz genérica IComparable<T>, ni la interfaz IComparable.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el IComparer.Compare método para comparar dos objetos. Este ejemplo forma parte de un ejemplo más grande proporcionado para la Comparer<T> clase .


// This explicit interface implementation
// compares first by the length.
// Returns -1 because the length of BoxA
// is less than the length of BoxB.
BoxLengthFirst LengthFirst = new BoxLengthFirst();

Comparer<Box> bc = (Comparer<Box>) LengthFirst;

Box BoxA = new Box(2, 6, 8);
Box BoxB = new Box(10, 12, 14);
int x = LengthFirst.Compare(BoxA, BoxB);
Console.WriteLine();
Console.WriteLine(x.ToString());

' This explicit interface implementation
' compares first by the length.
' Returns -1 because the length of BoxA
' is less than the length of BoxB.
Dim LengthFirst As New BoxLengthFirst()

Dim bc As Comparer(Of Box) = CType(LengthFirst, Comparer(Of Box))

Dim BoxA As New Box(2, 6, 8)
Dim BoxB As New Box(10, 12, 14)
Dim x As Integer = LengthFirst.Compare(BoxA, BoxB)
Console.WriteLine()
Console.WriteLine(x.ToString())

Comentarios

Este método es un contenedor para el Compare(T, T) método , por lo que obj debe convertirse al tipo especificado por el argumento T genérico de la instancia actual. Si no se puede convertir en T, se produce una ArgumentException excepción .

null Se permite comparar con cualquier tipo de referencia y no genera una excepción. Al ordenar, null se considera menor que cualquier otro objeto.

Notas a los autores de las llamadas

Compare(T, T) y Equals(T, T) se comportan de forma diferente en términos de distinción cultural y distinción entre mayúsculas y minúsculas.

Para las comparaciones de cadenas, se recomienda la StringComparer clase sobre ComparerString<>. Las propiedades de la StringComparer clase devuelven instancias predefinidas que realizan comparaciones de cadenas con diferentes combinaciones de distinción de referencia cultural y distinción entre mayúsculas y minúsculas. La distinción entre mayúsculas y minúsculas y la distinción cultural son coherentes entre los miembros de la misma StringComparer instancia.

Para obtener más información sobre las comparaciones específicas de la referencia cultural, vea el espacio de nombres y globalización System.Globalization y localización.

Se aplica a

Consulte también