728x90
C++의 경우
sort(a.begin(), b.end(), [&](int a, int b){
return a>b;
});
위와 같이 람다식을 사용하여 Sort를 자주 표현한다.
(위의 경우에 내림차순 -> 10, 9, 8 ... )
C#에서는 람다식은 좀더 간단하지만
( (매개변수)=>{함수정의} 의 형태 )
return 이 bool이 아닌 int를 반환하게 된다.
그렇다면 어떻게 정렬을 할까?
C#은 -1을 return 할 경우 그대로
1을 return 할 경우 순서를 바꾼다 생각하면 된다.
예를들어
List.Sort( (a, b) =>
{
if(a>b)
return -1;
else
return 1;
});
의 경우 a>b 일 때, 순서를 안바꾼다하면, 내림차순 (즉, 앞쪽이 큰 수) 가 된다.
이는 ICompare에 기반하여 그런 것 인데,
Compare()가 호출되었을 때 x가 y보다 작으면 음수를 반환, 같으면 0 반환, x가 y보다 크면 양수를 반환하는 메서드를 가진다. (오름차순)
728x90
'C# \ Unity' 카테고리의 다른 글
코루틴 NullReferenceException 오류 (1) | 2022.12.29 |
---|---|
C# ?? 연산자 (물음표 2개) (1) | 2022.11.01 |