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

Entero con signo que indica los valores relativos de x y y, como se muestra en la tabla siguiente.

Valor Significado
Menor que cerox es menor que y.
Cerox es igual que y.
Mayor que cerox 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 se debe convertir 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 .

Se null 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 se comportan de forma diferente en términos de distinción cultural y distinción entre mayúsculas y Equals(T, T) minúsculas.

Para las comparaciones de cadenas, se recomienda la StringComparer clase en Comparer<String>. Las propiedades de la StringComparer clase devuelven instancias predefinidas que realizan comparaciones de cadenas con diferentes combinaciones de distinción 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, consulte el espacio de nombres y globalización System.Globalizationy la localización.

Se aplica a

Consulte también