int CompareTo(
Object obj
)
정렬함수로써
리턴값이 0보다 크면 해당 인스턴스가 정렬에서 앞으로 오고, 작으면 그 반대이다.
C#에서 기본타입은 IComparable 를 상속받으며 CompareTo() 함수를 지원하고 있다.
public sealed class String : IConvertible, IComparable, IEnumerable, ICloneable, IComparable<String>, IEquatable<String>, IEnumerable<char>
{
public int CompareTo(String strB);
}
public struct Int32 : IFormattable, IConvertible, IComparable, IComparable<Int32>, IEquatable<Int32>
{
public Int32 CompareTo(Int32 value);
}
때문에 이런식으로 바로 비교함수를 호출할 수 있다.
int myCode;
...
myCode.CompareTo(guest.Code);
string형도 마찬가지이다.
늘 그렇듯 msdn의 예제로 소개를 하려고 했지만, 처음 배우는 입장에서 조금 난해하고
쓸데없는 코드가 많아 생략한다.
또한 IComparer 를 이용하여 정렬할때
다음과 같은 방법을 사용하기도 한다.
public class ItemSort { public class TestGradeSort : IComparer<Item> {
public int Compare(Item x, Item y) return x.grade.CompareTo(y.grade);
}
}
int형 grade를 가지고 있는 Item 리스트를 정렬할때, IComparer 를 상속받아
Compare함수를 만든후..
itemList.Sort(new ItemSort.TestGradeSort());
이런식으로 호출해주면 된다.
'프로그래밍 > C# 프로그래밍' 카테고리의 다른 글
Property - Get, Set (0) | 2015.10.21 |
---|---|
파티셜 클래스와 파티셜 메소드 (0) | 2015.10.18 |
C#에서 typedef 사용법 (0) | 2015.10.06 |
암시적 타입 var 키워드 (0) | 2015.10.05 |
Int32.Parse(), Convert.ToInt32(), Int32.TryParse() 차이 (0) | 2015.10.05 |