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

정의

형식에서 두 개체를 비교하기 위해 구현하는 메서드를 정의합니다.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)

형식 매개 변수

T

비교할 개체의 형식입니다.The type of objects to compare.

파생

예제

다음 예에서는 구현 하는 IComparer<T> 형식의 개체를 비교 하는 인터페이스 Box 해당 차원에 따라 합니다.The following example implements the IComparer<T> interface to compare objects of type Box according to their dimensions. 이 예제는에 대해 제공 된 큰 예제의 일부는 Comparer<T> 클래스입니다.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

설명

이 인터페이스를 사용 하 여 사용 합니다 List<T>.SortList<T>.BinarySearch 메서드.This interface is used with the List<T>.Sort and List<T>.BinarySearch methods. 컬렉션의 정렬 순서를 사용자 지정 하는 방법을 제공 합니다.It provides a way to customize the sort order of a collection. 이 인터페이스를 구현 하는 클래스를 포함 합니다 SortedDictionary<TKey,TValue>SortedList<TKey,TValue> 제네릭 클래스입니다.Classes that implement this interface include the SortedDictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes.

이 인터페이스의 기본 구현은 Comparer<T> 클래스입니다.The default implementation of this interface is the Comparer<T> class. 합니다 StringComparer 형식에 대 한이 인터페이스를 구현 하는 클래스 String합니다.The StringComparer class implements this interface for type String.

이 인터페이스는 순서 비교를 지원 합니다.This interface supports ordering comparisons. 즉,는 Compare 0을 반환 하는 메서드, 즉, 두 개체가 동일한 정렬 되는지 합니다.That is, when the Compare method returns 0, it means that two objects sort the same. 같음 비교에서 구현 되는 IEqualityComparer<T> 제네릭 인터페이스입니다.Implementation of exact equality comparisons is provided by the IEqualityComparer<T> generic interface.

파생 되는 것이 좋습니다는 Comparer<T> 구현 하는 대신 클래스는 IComparer<T> 인터페이스를 Comparer<T> 클래스의 명시적 인터페이스 구현을 제공 합니다 IComparer.Compare 메서드 및 Default 속성은 개체에 대 한 기본 비교자를 가져옵니다.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.

메서드

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

두 개체를 비교하여 한 개체가 다른 개체보다 작거나, 같거나 또는 크다는 것을 나타내는 값을 반환합니다.Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.

적용 대상

추가 정보