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

C#으로 두 개의 정렬된 배열을 리스트로 병합하는 방법

C#에서는 List<int>를 활용하면 두 개의 정렬된 배열을 손쉽게 하나의 리스트로 병합할 수 있습니다. 이 글에서는 배열 선언부터 병합, 그리고 ToArray() 메서드를 사용한 배열 변환까지 단계별로 살펴보겠습니다.

1. 두 개의 정렬된 배열 준비하기

먼저 병합할 두 개의 정렬된 배열을 선언합니다.

int[] array1 = { 56, 70, 77 };
int[] array2 = { 80, 99, 180 };

2. 리스트에 요소를 추가하며 병합하기

List<int> 객체를 생성한 뒤, 반복문을 사용해 두 배열의 요소를 순서대로 추가하여 병합합니다.

var list = new List<int>();
for (int i = 0; i < array1.Length; i++) {
    list.Add(array1[i]);
    list.Add(array2[i]);
}

3. ToArray() 메서드로 배열 변환하기

병합이 완료되면 ToArray() 메서드를 사용하여 리스트를 다시 배열 형태로 변환할 수 있습니다.

전체 예제 코드

지금까지의 과정을 하나의 프로그램으로 정리하면 다음과 같습니다.

using System;
using System.Collections.Generic;

public class Program {
    public static void Main() {
        int[] array1 = { 56, 70, 77 };
        int[] array2 = { 80, 99, 180 };
        var list = new List<int>();

        for (int i = 0; i < array1.Length; i++) {
            list.Add(array1[i]);
            list.Add(array2[i]);
        }
        int[] array3 = list.ToArray();

        foreach(int res in array3) {
            Console.WriteLine(res);
        }
    }
}

실행 결과

56
80
70
99
77
180

참고: 완전히 정렬된 결과가 필요한 경우

위 방식은 두 배열의 요소를 번갈아 가며 병합하기 때문에 결과가 전체적으로 정렬되어 있지 않습니다. 만약 병합 후 전체가 오름차순으로 정렬된 배열이 필요하다면, list.Sort()를 호출한 뒤 ToArray()로 변환하거나, LINQ의 Concat()OrderBy()를 함께 활용하면 됩니다.