백준을 풀다보니, 리스트 등에서 OrderBy 메서드를 자주 쓰게 되었다.
그러나, 다른 사람들의 코드를 참고하고 그때마다 다른 문법으로 쓰다보니 OrderBy의 매개변수로 들어가는 부분이 정확히 어떤 의미로 작동하는지 이해하지 못하고 쓰던 것 같아 정리 차 찾아보게 되었다.
Language-Integrated Query
컬렉션 형태를 띄는 모든 데이터에 질의할 수 있게 하는 시스템
OrderBy<TSource,TKey>(*IEnumerable<TSource>*, *Func<TSource,TKey>*)
내가 이전에 풀었던 문제에서, OrderBy(list, x => x)
와
OrderBy(list, (a, b) =>{ return a>b?-1:1;});
같은 구문을 쓴 적이 있다.
즉,
그럼 x => x
가 무엇을 의미하는걸까?
-> 리스트가 만약 {b, a, c} 였다면 원소 그 자체를 가지고 정렬하겠다는 의미.
(a, b) => {return a>b ? -1 : 1;};
-> a가 크면 ba 로 정렬 한다는 뜻이다. 반대로 b가 크면 ab 로 정렬.