반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 안드로이드
- php 홈디렉토리 변경방법
- 스랄 특성
- 히오스
- 변경된 정보
- 컬렉션 프레임
- tcp
- Collection Framework
- 어플
- unity
- 게임
- End of Darkness
- 아이패드
- 자바
- 에셋
- tcp네트워크
- game
- 소캣(Socket)
- 명령어
- 집 정리
- 기업의 행포
- 안드로이드 Application Lifecycle
- 아이폰
- 나지보
- TCP 네트워크 방식의 연결
- 나지보 특성
- 포트(Port)
- 벨팡
- 리눅스
- 비행기 모드
Archives
- Today
- Total
Do Something IT
c# IComparer 본문
반응형
참조 : 바로가기
List에서는 프레임워크에 내장된 특별한 인터페이스를 통해 리스트에서 멤버를 정렬할 때 쓸 수있는 별도의 클래스를 만들 수 있다.
IComparer인터페이스를 구현해 List에 객체를 정렬하는 방법을 알려줄 수 있다.
이는 IComparer인터페이스에 있는 Compare()메소드를 구현하면 된다. 이 메소드에서는 두 객체를 매개변수로 받고, int를 반환한다.
IComparer로 정렬할 때는 그 인터페이스를 구현하는 클래스의 인스턴스를 새로 만들어야 한다.
이 객체는 List.Sort()에서 객체들을 정렬하는 데 도움을 주기 위한 용도로만 사용된다.
1 2 3 4 5 6 7 8 9 | using System; namespace Sort { class Test { public int Size; } } |
Test 클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | using System; namespace Sort { class ComparerBySize : IComparer<Test> // Test객체를 정렬할 때 쓰는 클래스는 걸 알려준다 { public int Compare(Test x, Test y) //같은 유형끼리만 비교할 수 있다 { if(x.Size < y.Size) return -1; // -1을 반환한다는 것은 x객체가 y객체보다 앞으로 가야한다는 것을 뜻한다 // 이는 x가 y보다 작다는 뜻이다 if(x.Size > y.Size) return 1; // 1을 반환한다는 것은 x객체가 y객체보다 뒤로 가야한다는 것을 뜻한다 // 이는 x가 y보다 크다는 뜻이다 else return 0; } } } |
ComparerBySize 클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | using System; using Syste.Collection.Generic; namespace Sort { class Program { static void Main(string[] args) { List<Test> test = new List<Test>() { new Test(){ Size=17}, new Test(){ Size=18}, new Test(){ Size=14}, new Test(){ Size=11}, new Test(){ Size=15}, new Test(){ Size=13} }; ComparerBySize comparerSize = new ComparerBySize(); test.Sort(comparerSize); foreach(Test t in test) Console.WriteLine(t.Size); // 11 13 14 15 17 18 출력 } } } |
Main
[출처] [C#] 객체 정렬 (IComparer)|작성자 PPPP
반응형
'OtherLanguage > C' 카테고리의 다른 글
20100609 c언어 정리 (0) | 2010.06.09 |
---|---|
구조체와 typedef 자료형 선언 (0) | 2010.06.04 |
c언어 필기노트 (0) | 2010.06.01 |
Comments