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

C# List에 여러 요소 한 번에 삽입하기 – InsertRange() 메서드 완벽 가이드

C#에서 기존 리스트 중간이나 끝에 다른 컬렉션의 요소들을 한꺼번에 삽입하려면 InsertRange() 메서드를 사용하면 됩니다. 이 메서드를 활용하면 Add() 메서드로 하나씩 반복해서 추가하는 번거로움 없이, 두 개 이상의 요소를 한 번의 호출로 간편하게 리스트에 넣을 수 있습니다.

InsertRange() 메서드란?

InsertRange(int index, IEnumerable<T> collection)은 두 개의 매개변수를 받습니다.

  • index: 요소를 삽입할 시작 위치(인덱스)
  • collection: 삽입할 요소들이 담긴 컬렉션(배열, 리스트 등)

지정한 인덱스 위치부터 컬렉션의 모든 요소가 순서대로 삽입되며, 기존 요소들은 자동으로 뒤로 밀려납니다.

예제: 리스트 준비하기

먼저 정수형 리스트를 하나 만들어 보겠습니다.

List<int> arr1 = new List<int>();
arr1.Add(10);
arr1.Add(20);
arr1.Add(30);
arr1.Add(40);
arr1.Add(50);

삽입할 배열 준비하기

다음으로, 위 리스트에 추가할 요소들을 담은 배열을 생성합니다.

int[] arr2 = new int[4];
arr2[0] = 60;
arr2[1] = 70;
arr2[2] = 80;
arr2[3] = 90;

InsertRange()로 요소 일괄 삽입하기

인덱스 5, 즉 리스트의 마지막 위치에 배열 arr2의 모든 요소를 한 번에 삽입합니다.

arr1.InsertRange(5, arr2);

이 한 줄만으로 60, 70, 80, 90 네 개의 요소가 동시에 추가됩니다.

전체 예제 코드

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        List<int> arr1 = new List<int>();
        arr1.Add(10);
        arr1.Add(20);
        arr1.Add(30);
        arr1.Add(40);
        arr1.Add(50);

        Console.WriteLine("초기 리스트 ...");
        foreach (int i in arr1) {
            Console.WriteLine(i);
        }

        int[] arr2 = new int[4];
        arr2[0] = 60;
        arr2[1] = 70;
        arr2[2] = 80;
        arr2[3] = 90;

        arr1.InsertRange(5, arr2);

        Console.WriteLine("요소 추가 후 ...");
        foreach (int i in arr1) {
            Console.WriteLine(i);
        }
    }
}

실행 결과

초기 리스트 ...
10
20
30
40
50
요소 추가 후 ...
10
20
30
40
50
60
70
80
90

정리

InsertRange() 메서드를 사용하면 반복문 없이도 여러 요소를 원하는 위치에 한 번에 삽입할 수 있습니다. 특히 배열이나 다른 리스트의 데이터를 기존 리스트에 통합할 때 코드가 훨씬 간결해지고 가독성도 좋아집니다. 단, 삽입 위치의 인덱스가 유효 범위(0 ~ Count)를 벗어나면 ArgumentOutOfRangeException이 발생하므로 주의해야 합니다.