C#에서 문자열 배열을 사전순(lexicographical order)으로 정렬하는 것은 LINQ의 orderby 절을 사용하면 매우 간단합니다. 이 글에서는 기본 예제부터 전체 코드와 실행 결과까지 단계별로 살펴보겠습니다.
1. 문자열 배열 선언하기
먼저 정렬할 단어들이 담긴 문자열 배열을 선언합니다.
string[] arr = new string[] {
"Indian",
"Moroccon",
"American",
};2. LINQ로 사전순 정렬하기
LINQ 쿼리 구문에서 orderby 절을 사용하면 요소들을 오름차순, 즉 사전순으로 정렬할 수 있습니다.
var sort = from a in arr orderby a select a;
orderby는 기본적으로 오름차순으로 동작하므로 별도의 옵션 없이도 알파벳 순서대로 정렬됩니다. 만약 내림차순으로 정렬하고 싶다면 orderby a descending처럼 descending 키워드를 추가하면 됩니다.
전체 예제 코드
지금까지의 내용을 하나의 완성된 프로그램으로 작성하면 다음과 같습니다.
using System;
using System.Linq;
class Program {
static void Main() {
string[] arr = new string[] {
"Indian",
"Moroccon",
"American",
};
var sort = from a in arr
orderby a
select a;
foreach(string res in sort) {
Console.WriteLine(res);
}
}
}실행 결과
프로그램을 실행하면 다음과 같이 단어가 알파벳 순서로 출력됩니다.
American Indian Moroccon
정리
C#에서 문자열 배열을 사전순으로 정렬하는 가장 간결한 방법은 LINQ의 orderby 절입니다. 쿼리 구문뿐만 아니라 메서드 구문인 arr.OrderBy(a => a)를 사용해도 동일한 결과를 얻을 수 있으니, 상황에 맞게 활용해 보시기 바랍니다.