Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 LINQ를 활용해 단어를 사전순으로 정렬하는 방법

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)를 사용해도 동일한 결과를 얻을 수 있으니, 상황에 맞게 활용해 보시기 바랍니다.