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

C#에서 배열을 내림차순으로 정렬하는 방법

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> 델리게이트에 람다 식을 전달하여 비교 순서만 바꾸면 별도의 추가 코드 없이도 손쉽게 내림차순 정렬을 구현할 수 있습니다. 이 방식은 문자열 배열 등 다른 자료형에도 동일하게 적용 가능하므로, 다양한 상황에서 유용하게 활용할 수 있습니다.