IComparer<T>.Compare(T, T) 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.

public int Compare (T x, T y);
public int Compare (T? x, T? y);

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 cerox es menor que y.
Cerox es igual que y.
Mayor que cerox es mayor que y.

Ejemplos

En el ejemplo siguiente se implementa la IComparer<T> interfaz para comparar objetos de tipo Box según sus dimensiones. Este ejemplo forma parte de un ejemplo más grande proporcionado para la Comparer<T> clase .

// 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;
        }
    }
}

Comentarios

Implemente este método para proporcionar una comparación de criterio de ordenación personalizada para el tipo T.

null Se permite comparar con cualquier tipo de referencia y no genera una excepción. Se considera que una referencia nula es menor que cualquier referencia que no sea NULL.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Consulte también