List<T> Sort

 

LINQ의 OrderBy 이외에도,

List<T> 에서는 기본 제공하는 Sort 라는 메소드가 존재함.

    public void TEST()
    {
        statModifers.Sort(CompareOrder);
    }

    private int CompareOrder(StatModifier a, StatModifier b)
    {
        if (a.Order < b.Order)
            return -1;
        else if (a.Order > b.Order)
            return 1;
        return 0;
    }

 

Sort 속에는 Comparison이 될 수 있는 메소드가 들어가야한다.

    statModifers.Sort(delegate (StatModifier a, StatModifier b)
    {
        if (a.Order < b.Order)
            return -1;
        else if (a.Order > b.Order)
            return 1;
        return 0;
    });

외부에서 함수를 선언하지않고 위와 같이 delegate로도 가능하다.

 

List<T> Sort 는 같은 데이터가 있다면 두개의 순서가 바뀔 수 있다고한다.

LINQ OrderBy 는 같은 데이터가 있더라도 순서가 바뀌지않는다.

 

 

댓글

Designed by JB FACTORY