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를 활용하면 복잡한 정렬 로직 없이도 간결하고 가독성 높은 코드로 목록을 원하는 순서대로 정렬할 수 있습니다.