C#의 orderby 절은 LINQ 쿼리에서 컬렉션의 요소들을 지정된 필드를 기준으로 특정 순서대로 정렬할 때 사용됩니다. 정렬 순서는 오름차순(ascending) 또는 내림차순(descending)으로 지정할 수 있습니다.
orderby 절이란?
orderby는 System.Linq 네임스페이스에서 제공하는 LINQ 쿼리 구문의 핵심 요소 중 하나입니다. 문자열 길이, 이름, 날짜 등 다양한 기준으로 데이터를 정렬할 수 있으며, 기본 정렬 방식은 오름차순입니다. 내림차순으로 정렬하려면 반드시 descending 키워드를 함께 작성해야 합니다.
예제 데이터 준비
다음과 같이 문자열 요소를 담은 리스트가 있다고 가정해 보겠습니다.
List<string> myList = new List<string>();
// 요소 추가
myList.Add("iOS by Apple");
myList.Add("Android by Google");
myList.Add("Symbian by Nokia");내림차순으로 정렬하기
이제 orderby 절과 descending 키워드를 사용하여 문자열 길이를 기준으로 내림차순 정렬을 수행해 보겠습니다.
var myLen = from element in myList
orderby element.Length descending
select element;위 쿼리는 각 문자열의 Length(길이)를 기준으로 요소들을 긴 순서부터 짧은 순서대로 재배열합니다.
전체 코드 예제
using System;
using System.Collections.Generic;
using System.Linq;
class Demo {
static void Main() {
List<string> myList = new List<string>();
myList.Add("iOS by Apple");
myList.Add("Android by Google");
myList.Add("Symbian by Nokia");
var myLen = from element in myList
orderby element.Length descending
select element;
Console.WriteLine("내림차순 정렬 결과...");
foreach (string str in myLen) {
Console.WriteLine(str);
}
}
}실행 결과
내림차순 정렬 결과... Android by Google Symbian by Nokia iOS by Apple
핵심 정리
orderby 절을 활용하면 복잡한 정렬 로직을 직접 구현하지 않고도 간결한 쿼리 구문만으로 컬렉션을 손쉽게 정렬할 수 있습니다. 참고로 여러 기준으로 정렬해야 하는 경우에는 쉼표(,)로 구분하여 여러 정렬 키를 지정하는 것도 가능합니다. 예를 들어 orderby a.Name ascending, a.Age descending처럼 조합하면 더욱 유연한 정렬 처리가 가능합니다.