2017년 8월 28일 월요일

코드 조각 리스트<클래스>의 소팅 하기

평소에는 List<>.sort() 로 쉽게 정렬을 하지만,
직접 만든 클래스는 정렬이 어려워서 이럴 떄 사용할만한 코드 조각

public class BasicEntity
{
    public int Index = 0;
    public string Name = string.Empty;
    public float Value = 0f;
}

   // true 면 낮은 순부터 0 false 면 반대
    public List<BasicEntity> sortFilterEntity(List<BasicEntity> list, bool order)
    {
        List<BasicEntity> result = list;

        if (order)
        {
            result.Sort(delegate (BasicEntity A, BasicEntity B)
            {
                if (A.Index > B.Index) return 1;
                else if (A.Index < B.Index) return -1;
                return 0;
            });
        }
        else
        {
            result.Sort(delegate (BasicEntity A, BasicEntity B)
            {
                if (A.Index > B.Index) return -1;
                else if (A.Index < B.Index) return 1;
                return 0;
            });
        }

        for (int i = 0; i < result.Count; i++)
        {
            Debug.LogError(result[i].Name);
        }

        return result;
    }

댓글 없음:

댓글 쓰기