C# OrderBy

RudinP·2023년 4월 12일
0

Study

목록 보기
24/227

백준을 풀다보니, 리스트 등에서 OrderBy 메서드를 자주 쓰게 되었다.
그러나, 다른 사람들의 코드를 참고하고 그때마다 다른 문법으로 쓰다보니 OrderBy의 매개변수로 들어가는 부분이 정확히 어떤 의미로 작동하는지 이해하지 못하고 쓰던 것 같아 정리 차 찾아보게 되었다.

Linq에 대하여

Language-Integrated Query
컬렉션 형태를 띄는 모든 데이터에 질의할 수 있게 하는 시스템

OrderBy

  • 안정적인 정렬 수행
    • 두 요소의 키가 같으면 요소의 순서가 유지

OrderBy<TSource,TKey>(*IEnumerable<TSource>*, *Func<TSource,TKey>*)

내가 이전에 풀었던 문제에서, OrderBy(list, x => x)
OrderBy(list, (a, b) =>{ return a>b?-1:1;});
같은 구문을 쓴 적이 있다.
즉,

  • 첫번째 자리의 매개변수에는 리스트와 같은 Collection 에 해당하는 자료형을 넣고
  • 두번째 자리의 매개변수에는 정렬에 쓰이는 기준값을 넣는다
    라는 방식이다.

그럼 x => x 가 무엇을 의미하는걸까?
-> 리스트가 만약 {b, a, c} 였다면 원소 그 자체를 가지고 정렬하겠다는 의미.

(a, b) => {return a>b ? -1 : 1;};
-> a가 크면 ba 로 정렬 한다는 뜻이다. 반대로 b가 크면 ab 로 정렬.

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글