본문 바로가기
게임 개발/Unity3D

[Unity | 유니티] 커스텀 정렬 알고리즘 만들기

by 불타는홍당무 2018. 11. 21.

특정한 조건을 충족하는 정렬 알고리즘이 필요할 경우 커스텀 정렬 알고리즘을 만드는 방법을 소개한다.

기존
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