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

C#에서 LINQ를 활용해 목록 요소를 내림차순으로 정렬하는 방법

C#에서는 LINQ의 orderby 절과 descending 키워드를 조합하면 컬렉션의 요소를 손쉽게 내림차순으로 정렬할 수 있습니다. 이번 글에서는 IList<Employee> 형태의 직원 목록을 이름 기준으로 내림차순 정렬하는 방법을 예제와 함께 살펴보겠습니다.

정렬할 데이터 준비하기

먼저 직원 정보를 담고 있는 목록을 생성합니다.

IList<Employee> emp = new List<Employee>() {
    new Employee() { EmployeeRank = 4, EmpName = "Amit", EmpMarks = 90 },
    new Employee() { EmployeeRank = 5, EmpName = "Raman", EmpMarks = 95 }
};

내림차순 정렬 쿼리 작성하기

목록의 요소를 내림차순으로 정렬하려면 orderby 뒤에 descending 키워드를 붙여주면 됩니다. 아래 예제에서는 직원 이름(EmpName)을 기준으로 내림차순 정렬을 수행합니다.

var res = from str in emp orderby str.EmpName descending select str;

참고로 오름차순으로 정렬하고 싶다면 descending 키워드를 생략하거나 ascending을 명시적으로 사용하면 됩니다.

전체 예제 코드

using System;
using System.Linq;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        IList<Employee> emp = new List<Employee>() {
            new Employee() { EmployeeRank = 4, EmpName = "Amit", EmpMarks = 90 },
            new Employee() { EmployeeRank = 5, EmpName = "Raman", EmpMarks = 95 }
        };

        var res = from str in emp orderby str.EmpName descending select str;

        Console.WriteLine("Student List (Descending Order):");
        foreach (var list in res)
            Console.WriteLine(list.EmpName);
    }
}

public class Employee {
    public int EmployeeRank { get; set; }
    public string EmpName { get; set; }
    public int EmpMarks { get; set; }
}

실행 결과

Student List (Descending Order):
Raman
Amit

핵심 정리

  • orderby 절은 LINQ 쿼리에서 정렬 기준 필드를 지정합니다.
  • descending 키워드를 추가하면 내림차순(Z→A, 큰 값→작은 값)으로 정렬됩니다.
  • 문자열뿐 아니라 숫자형 필드(예: EmpMarks, EmployeeRank)에도 동일한 방식으로 적용할 수 있습니다.

이처럼 C#의 LINQ를 활용하면 복잡한 정렬 로직 없이도 간결하고 가독성 높은 코드로 목록을 원하는 순서대로 정렬할 수 있습니다.