C#에서 LINQ의 orderby 키워드로 리스트 정렬하기
C#에서 리스트(List)를 정렬할 때는 LINQ의 orderby 키워드를 사용하는 것이 가장 간단하고 직관적인 방법입니다. orderby를 사용하면 별도의 정렬 알고리즘을 구현하지 않아도 한 줄의 쿼리로 원하는 기준에 따라 데이터를 오름차순 또는 내림차순으로 손쉽게 정렬할 수 있습니다.
아래 예제에서는 각 문자열 요소의 길이(Length)를 기준으로 orderby를 설정했습니다.
var myLen = from element in myList orderby element.Length select element;
전체 예제 코드
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
List <string> myList = new List<string>();
myList.Add("truck");
myList.Add("bus");
myList.Add("cab");
myList.Add("motorbike");
var myLen = from element in myList
orderby element.Length
select element;
foreach (string str in myLen) {
Console.WriteLine(str);
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 문자 수가 적은 단어부터 차례대로 표시되므로, 마치 오름차순으로 정렬된 리스트처럼 보이는 것을 확인할 수 있습니다.
bus cab truck motorbike
내림차순으로 정렬하는 방법
만약 반대로 내림차순으로 정렬하고 싶다면 orderby 뒤에 descending 키워드를 추가하기만 하면 됩니다.
var myLen = from element in myList orderby element.Length descending select element;
이 경우 결과는 motorbike, truck, cab, bus 순서로 출력됩니다. 이처럼 LINQ의 orderby를 활용하면 숫자 크기, 문자열 길이, 날짜 등 다양한 조건으로 유연하게 정렬 로직을 구성할 수 있습니다.