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

C#에서 LINQ를 사용해 리스트를 정렬하는 방법

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를 활용하면 숫자 크기, 문자열 길이, 날짜 등 다양한 조건으로 유연하게 정렬 로직을 구성할 수 있습니다.