IComparable 유형 정렬 인터페이스
2898 단어 정렬유형 비교IComparable 인터페이스
//유형에 특정된 일반적인 비교 방법을 정의하고 값 유형이나 클래스는 이 방법을 통해 실례를 정렬한다.
[ComVisible(true)]
public interface IComparable
{
//요약:
//현재 인스턴스를 동일한 유형의 다른 객체와 비교하고 현재 실을 나타내는 정수를 반환합니다.
//예제 정렬 순서의 위치가 다른 대상의 앞, 뒤에 있는지 아니면 그 위치와 같은지.
//
//매개변수:
// obj:
//이 인스턴스와 비교할 객체
//
//결과를 반환합니다.
//비교할 객체의 상대 순서를 나타내는 값.반환 값의 의미는 다음과 같다. 값의 의미는 0보다 작고 이 실례는//obj보다 작다.0 이 실례는 obj와 같다.0보다 크면 obj보다 크다.
//
//예외:
// System.ArgumentException:
//obj에는 이 인스턴스와 같은 유형이 없습니다.
int CompareTo(object obj);
}
참고:
이 인터페이스는 정렬 가능한 값을 가진 형식으로 이루어집니다.이것은 현재 실례가 정렬 순서에 있는 위치가 같은 유형의 다른 대상 앞에 있는지, 뒤에 있는지, 아니면 그 위치와 같은지를 표시하는 단일 방법인 CompareTo(Object)를 실현해야 한다.인스턴스의 IComparable 구현은 Array.Sort 및 Array List.Sort 등의 메서드가 자동으로 호출됩니다.CompareTo(Object) 방법의 실현은 세 가지 값 중 하나인 Int32로 돌아가야 한다. 아래 표와 같다.
예제 코드: (공식 개발 문서)
using System;
using System.Collections;
public class Temperature : IComparable
{ // The temperature value
protected double temperatureF;
public int CompareTo(object obj) {
if (obj == null) return 1;
Temperature otherTemperature = obj as Temperature;
if (otherTemperature != null)
return this.temperatureF.CompareTo(otherTemperature.temperatureF);
else
throw new ArgumentException("Object is not a Temperature");
}
public double Fahrenheit
{
get
{
return this.temperatureF;
}
set
{
this.temperatureF = value;
}
}
public double Celsius
{
get
{
return (this.temperatureF - 32) * (5.0/9);
}
set
{
this.temperatureF = (value * 9.0/5) + 32;
}
}
}
public class CompareTemperatures
{
public static void Main()
{
ArrayList temperatures = new ArrayList(); // Initialize random number generator.
Random rnd = new Random(); // Generate 10 temperatures between 0 and 100 randomly.
for (int ctr = 1; ctr <= 10; ctr++)
{
int degrees = rnd.Next(0, 100);
Temperature temp = new Temperature();
temp.Fahrenheit = degrees;
temperatures.Add(temp);
} // Sort ArrayList.
temperatures.Sort();
foreach (Temperature temp in temperatures)
Console.WriteLine(temp.Fahrenheit);
}
}
// The example displays the following output to the console (individual
// values may vary because they are randomly generated):
// 2
// 7
// 16
// 17
// 31
// 37
// 58
// 66
// 72
// 95
궁금한 점이 있으면 공식 개발자 문서를 참고하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cognos 목록을 프롬프트에서 선택한 항목으로 오름차순 및 내림차순으로 정렬Cognos BI & Analytics에서 리스트의 정렬을 항목 지정 및 정렬 순서 지정으로 하고 싶을 때의 방법입니다. 정렬 항목 프롬프트에서 수량을 선택하고 정렬 순서 프롬프트에서 내림차순을 선택한 예입니다. 정...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.