C#에서 배열을 내림차순으로 정렬하는 것은 Array.Sort() 메서드와 Comparison<T> 델리게이트를 함께 활용하면 간단하게 구현할 수 있습니다. 기본적으로 Sort()는 오름차순으로 정렬되기 때문에, 비교 로직을 직접 지정해 주어야 내림차순 정렬이 가능합니다.
1. 배열 선언 및 초기화
먼저 정수형 배열을 선언하고 값을 초기화합니다.
int[] arr = new int[] {
87,
23,
65,
29,
67
};2. 내림차순 정렬 구현
정렬을 수행하려면 Sort() 메서드를 사용하고, 두 요소의 크기를 비교하는 CompareTo()를 활용하여 내림차순으로 표시합니다. 핵심은 val2.CompareTo(val1)처럼 인자의 순서를 뒤집어 비교 결과를 반전시키는 것입니다.
Array.Sort<int>(arr, new Comparison<int>((val1, val2) => val2.CompareTo(val1)));
3. 전체 예제 코드
아래는 위 과정을 모두 포함한 완성된 코드입니다.
using System;
using System.Collections.Generic;
using System.Text;
public class Demo {
public static void Main(string[] args) {
int[] arr = new int[] {
87,
23,
65,
29,
67
};
// 초기 배열 출력
Console.WriteLine("Initial Array...");
foreach(int items in arr) {
Console.WriteLine(items);
}
// 내림차순 정렬 수행
Array.Sort<int>(arr, new Comparison<int>((val1, val2) => val2.CompareTo(val1)));
// 정렬된 배열 출력
Console.WriteLine("Sorted Array in decreasing order...");
foreach(int items in arr) {
Console.WriteLine(items);
}
}
}실행 결과
Initial Array... 87 23 65 29 67 Sorted Array in decreasing order... 87 67 65 29 23
정리
Comparison<T> 델리게이트에 람다 식을 전달하여 비교 순서만 바꾸면 별도의 추가 코드 없이도 손쉽게 내림차순 정렬을 구현할 수 있습니다. 이 방식은 문자열 배열 등 다른 자료형에도 동일하게 적용 가능하므로, 다양한 상황에서 유용하게 활용할 수 있습니다.