IComparer<T> IComparer<T> IComparer<T> IComparer<T> Interface

Definição

Define um método que um tipo implementa para comparar dois objetos.Defines a method that a type implements to compare two objects.

generic <typename T>
public interface class IComparer
public interface IComparer<in T>
type IComparer<'T> = interface
Public Interface IComparer(Of In T)

Parâmetros de tipo

T

O tipo de objetos a serem comparados.The type of objects to compare.

Derivado

Exemplos

O exemplo a seguir implementa IComparer<T> a interface para comparar objetos do Box tipo de acordo com suas dimensões.The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. Este exemplo faz parte de um exemplo maior fornecido para a Comparer<T> classe.This example is part of a larger example provided for the Comparer<T> class.

// 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;
        }
    }
}
' 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
	Implements IComparer(Of Box)
	' Compares by Height, Length, and Width.
    Public Function Compare(ByVal x As Box, ByVal y As Box) As Integer Implements _
                                                IComparer(Of Box).Compare
        If x.Height.CompareTo(y.Height) <> 0 Then
            Return x.Height.CompareTo(y.Height)
        ElseIf x.Length.CompareTo(y.Length) <> 0 Then
            Return x.Length.CompareTo(y.Length)
        ElseIf x.Width.CompareTo(y.Width) <> 0 Then
            Return x.Width.CompareTo(y.Width)
        Else
            Return 0
        End If
    End Function
End Class

Comentários

Essa interface é usada com os List<T>.Sort métodos List<T>.BinarySearch e.This interface is used with the List<T>.Sort and List<T>.BinarySearch methods. Ele fornece uma maneira de personalizar a ordem de classificação de uma coleção.It provides a way to customize the sort order of a collection. As classes que implementam essa interface SortedDictionary<TKey,TValue> incluem SortedList<TKey,TValue> as classes genéricas e.Classes that implement this interface include the SortedDictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes.

A implementação padrão dessa interface é a Comparer<T> classe.The default implementation of this interface is the Comparer<T> class. A StringComparer classe implementa essa interface para o Stringtipo.The StringComparer class implements this interface for type String.

Esta interface dá suporte a comparações de ordenação.This interface supports ordering comparisons. Ou seja, quando o Compare método retorna 0, isso significa que dois objetos classificam o mesmo.That is, when the Compare method returns 0, it means that two objects sort the same. A IEqualityComparer<T> implementação de comparações de igualdade exatas é fornecida pela interface genérica.Implementation of exact equality comparisons is provided by the IEqualityComparer<T> generic interface.

É recomendável que você derive Comparer<T> da classe em vez de IComparer<T> implementar a interface, Comparer<T> porque a IComparer.Compare classe fornece uma implementação de interface explícita do método Default e a propriedade que Obtém o comparador padrão do objeto.We recommend that you derive from the Comparer<T> class instead of implementing the IComparer<T> interface, because the Comparer<T> class provides an explicit interface implementation of the IComparer.Compare method and the Default property that gets the default comparer for the object.

Métodos

Compare(T, T) Compare(T, T) Compare(T, T) Compare(T, T)

Compara dois objetos e retorna um valor que indica se um é menor, igual ou maior do que o outro.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

Aplica-se a

Veja também