특정한 조건을 충족하는 정렬 알고리즘이 필요할 경우 커스텀 정렬 알고리즘을 만드는 방법을 소개한다.
기존
list.sort((a,b) => a.CompareTo(b)); //오름차순 정렬
list.sort((a,b) => b.CompareTo(a)); //내림차순 정렬
커스텀
List<item> list = new List<item>() {a, b, c, d};
list.sort(new SortComparer());
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public class SortComparer : IComparer<item> { public int Compare(item x, item y) { //정렬 조건을 설정한다. //item의 weight를 내림차순으로 정렬한다고 가정해보자. //x 순서가 y보다 앞이면 -1 if(x.weight > y.weight) return -1; //x,y 순서가 같으면 0 if(x.weight == y.weight) return 0; //x 순서가 y보다 뒤이면 1 if(x.weight < y.weight) return 1; } } | cs |
'게임 개발 > Unity3D' 카테고리의 다른 글
[Unity | 유니티] 데이터를 CSV 파일로 추출하기 (0) | 2018.12.13 |
---|---|
[Unity | 유니티] 로그 On/Off를 위한 전용 로깅 스크립트 만들기 (0) | 2018.11.29 |
[Unity | 유니티] Serializable Class 활용하기 (30) | 2018.11.21 |
[Unity | 유니티] 특정 디렉토리에서 프리팹 또는 파일 로드하기 (0) | 2018.11.15 |
[Unity | 유니티] EasingFunctions.cs 스크립트 작성하기 (0) | 2018.11.15 |