Windows 앱
콘텐츠의 테이블 축소
콘텐츠의 테이블 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

IComparable<T> 인터페이스

 

인스턴스를 정렬하는 형식 고유의 비교 메서드를 만들기 위해 값 형식 또는 클래스에서 구현하는 일반화된 비교 메서드를 정의합니다.

네임스페이스:   System
어셈블리:  mscorlib.dll의 mscorlib

public interface IComparable<in T>

형식 매개 변수

T

비교할 개체의 형식입니다.

이름설명
System_CAPS_pubmethodCompareTo(T)

현재 인스턴스와 동일한 형식의 다른 개체를 비교하고 정렬 순서에서 현재 인스턴스의 위치가 다른 개체보다 앞인지, 뒤인지 또는 동일한지를 나타내는 정수를 반환합니다.

이 인터페이스는 형식 값을 가진 정렬 하거나 정렬할 수에 의해 구현 됩니다 하 고 제네릭 컬렉션 개체의 멤버를 정렬 하는 것에 대 한 강력한 형식의 비교 메서드를 제공 합니다.예: 한 숫자는 두번째 숫자 보다 클 수 및 한 문자열이 다른 것 보다 먼저 사전순으로 나타날 수 있습니다.구현 형식은 단일 메서드를 정의 하는 것이 걸립니다 CompareTo(T), 하는 정렬 순서에서 현재 인스턴스의 위치 인지 나타내는 하기 전에, 후, 동일한 형식의 두번째 개체와 동일 합니다.일반적으로 개발자 코드에서 직접 메서드 호출 되지 않습니다.대신, 자동으로 의해 호출 됩니다 메서드 같은 List<T>.Sort()Add.

일반적으로 형식을 제공 하는 프로그램 IComparable<T> 구현도 구현에서 IEquatable<T> 인터페이스입니다. IEquatable<T> 인터페이스 정의 Equals 메서드를 구현 하는 형식의 인스턴스가 같은지 여부를 확인 합니다.

구현을 CompareTo(T) 메서드를 반환 해야는 Int32 있는 3 개의 값 중 하나는 다음 표와 같이 합니다.

의미

0보다 작음

이 개체에서 지정한 개체 앞에 오는 CompareTo 정렬 순서로 메서드.

0

이 현재 인스턴스에 의해 지정 된 개체와 정렬 순서에서 동일한 위치에서 발생 된 CompareTo 메서드 인수입니다.

0보다 큼

이 현재 인스턴스에 의해 지정 된 개체 다음에 오는 CompareTo 정렬 순서로 메서드 인수입니다.

모든 숫자 형식 (예: Int32Double) 구현 IComparable<T>같이 String, Char, 및 DateTime.사용자 지정 형식을의 자체 구현을 제공 해야 IComparable<T> 개체 인스턴스를 정렬 하거나 정렬할 수 있도록 합니다.

구현자 참고 사항:

형식 매개 변수 바꾸기는 IComparable<T> 인터페이스와이 인터페이스를 구현 하는 형식입니다.

구현 하는 경우 IComparable<T>, 오버 로드 해야는 op_GreaterThan, op_GreaterThanOrEqual, op_LessThan, 및 op_LessThanOrEqual 와 일치 하는 값을 반환 하는 연산자 CompareTo.또한 구현 해야 IEquatable<T>.참조는 IEquatable<T> 완전 한 정보에 대 한 문서.

다음 코드 예제에서는 구현의 IComparable<T> 간단한 위한 Temperature 개체입니다.이 예에서는 만듭니다는 SortedList<TKey, TValue> 있는 문자열의 컬렉션 Temperature 키, 개체 및 여러 쌍의 온도 문자열 목록에 추가 되지 않은 순서로 합니다.에 대 한 호출에는 Add 메서드를는 SortedList<TKey, TValue> 컬렉션 사용 하 여는 IComparable<T> 온도 늘리는 경우의 순서로 다음 표시 되는 목록 항목을 정렬 하려면 구현 합니다.

using System;
using System.Collections.Generic;

public class Temperature : IComparable<Temperature>
{
    // Implement the generic CompareTo method with the Temperature 
    // class as the Type parameter. 
    //
    public int CompareTo(Temperature other)
    {
        // If other is not a valid object reference, this instance is greater.
        if (other == null) return 1;

        // The temperature comparison depends on the comparison of 
        // the underlying Double values. 
        return m_value.CompareTo(other.m_value);
    }

    // The underlying temperature value.
    protected double m_value = 0.0;

    public double Celsius    
    {
        get
        {
            return m_value - 273.15;
        }
    }

    public double Kelvin    
    {
        get
        {
            return m_value;
        }
        set
        {
            if (value < 0.0)
            {
                throw new ArgumentException("Temperature cannot be less than absolute zero.");
            }
            else
            {
                m_value = value;
            }
        }
    }

    public Temperature(double kelvins)
    {
        this.Kelvin = kelvins;
    }
}

public class Example
{
    public static void Main()
    {
        SortedList<Temperature, string> temps = 
            new SortedList<Temperature, string>();

        // Add entries to the sorted list, out of order.
        temps.Add(new Temperature(2017.15), "Boiling point of Lead");
        temps.Add(new Temperature(0), "Absolute zero");
        temps.Add(new Temperature(273.15), "Freezing point of water");
        temps.Add(new Temperature(5100.15), "Boiling point of Carbon");
        temps.Add(new Temperature(373.15), "Boiling point of water");
        temps.Add(new Temperature(600.65), "Melting point of Lead");

        foreach( KeyValuePair<Temperature, string> kvp in temps )
        {
            Console.WriteLine("{0} is {1} degrees Celsius.", kvp.Value, kvp.Key.Celsius);
        }
    }
}
/* This example displays the following output:
      Absolute zero is -273.15 degrees Celsius.
      Freezing point of water is 0 degrees Celsius.
      Boiling point of water is 100 degrees Celsius.
      Melting point of Lead is 327.5 degrees Celsius.
      Boiling point of Lead is 1744 degrees Celsius.
      Boiling point of Carbon is 4827 degrees Celsius.
*/

Universal Windows Platform
4.5 이후에 사용 가능
.NET Framework
2.0 이후에 사용 가능
Portable Class Library
portable .NET platforms에서 지원 portable .NET platforms
Silverlight
2.0 이후에 사용 가능
Windows Phone Silverlight
7.0 이후에 사용 가능
Windows Phone
8.1 이후에 사용 가능
맨 위로 이동
표시:
© 2016 Microsoft