IComparer<T> Interfejs

Definicja

Definiuje metodę, którą typ implementuje, aby porównać dwa obiekty.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)

Parametry typu

T

Typ obiektów do porównania.The type of objects to compare.

Pochodne

Przykłady

W poniższym przykładzie przedstawiono implementację IComparer<T> interfejsu w celu porównania obiektów typu Box według ich wymiarów.The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. Ten przykład jest częścią większego przykładu dostarczonego dla Comparer<T> klasy.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

Uwagi

Ten interfejs jest używany z List<T>.Sort metodami i. List<T>.BinarySearchThis interface is used with the List<T>.Sort and List<T>.BinarySearch methods. Umożliwia dostosowanie kolejności sortowania kolekcji.It provides a way to customize the sort order of a collection. Klasy implementujące ten interfejs obejmują SortedDictionary<TKey,TValue> klasy i. SortedList<TKey,TValue>Classes that implement this interface include the SortedDictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes.

Domyślna implementacja tego interfejsu jest Comparer<T> klasą.The default implementation of this interface is the Comparer<T> class. Klasa implementuje ten interfejs dla typu String. StringComparerThe StringComparer class implements this interface for type String.

Ten interfejs obsługuje sortowanie sortowania.This interface supports ordering comparisons. To znaczy, gdy Compare Metoda zwraca wartość 0, oznacza, że dwa obiekty sortują się tak samo.That is, when the Compare method returns 0, it means that two objects sort the same. Implementacja dokładnego porównania jest dostarczana przez IEqualityComparer<T> interfejs generyczny.Implementation of exact equality comparisons is provided by the IEqualityComparer<T> generic interface.

Firma Microsoft zaleca, aby dziedziczyć Comparer<T> z klasy zamiast IComparer<T> implementować interfejs, ponieważ Comparer<T> IComparer.Compare Klasa zapewnia Default jawną implementację interfejsu metody i właściwość, która Pobiera domyślną funkcję porównującą dla obiektu.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.

Metody

Compare(T, T)

Porównuje dwa obiekty i zwraca wartość wskazującą, czy jedna z nich jest mniejsza, równa lub większa od drugiej.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

Dotyczy

Zobacz też