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

C# List 특정 인덱스에 컬렉션 요소 삽입하기 – InsertRange() 메서드 완벽 가이드

C#에서 컬렉션의 모든 요소를 List<T>의 지정된 인덱스 위치에 한 번에 삽입하려면 InsertRange() 메서드를 사용합니다. 이 메서드는 두 개의 매개변수를 받는데, 첫 번째는 삽입이 시작될 인덱스(0부터 시작), 두 번째는 삽입할 컬렉션입니다.

기존 요소들은 자동으로 뒤로 밀려나며, 새로운 요소들이 지정된 위치부터 순서대로 들어가게 됩니다.

InsertRange() 메서드 기본 문법

list.InsertRange(int index, IEnumerable<T> collection);
  • index : 새 요소가 삽입될 위치 (0부터 시작)
  • collection : 삽입할 요소들을 담고 있는 컬렉션

예제 1 – 문자열 배열 삽입하기

다음은 문자열 배열의 요소들을 List의 3번째 인덱스에 삽입하는 예제입니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      string[] strArr = { "John", "Tom", "Kevin", "Mark", "Gary" };
      List<string> list = new List<string>(strArr);

      Console.WriteLine("List의 요소들...");
      foreach(string str in list) {
         Console.WriteLine(str);
      }

      strArr = new string[] { "Demo", "Text" };
      Console.WriteLine("새 요소 범위 삽입 후...");
      list.InsertRange(3, strArr);

      foreach(string res in list) {
         Console.WriteLine(res);
      }
   }
}

실행 결과

List의 요소들...
John
Tom
Kevin
Mark
Gary
새 요소 범위 삽입 후...
John
Tom
Kevin
Demo
Text
Mark
Gary

인덱스 3의 위치였던 "Mark" 앞에 "Demo"와 "Text"가 삽입되고, 기존 요소들은 뒤로 밀려난 것을 확인할 수 있습니다.

예제 2 – 정수 배열 삽입하기

숫자 데이터에서도 동일하게 동작합니다. 다음은 정수 배열의 요소들을 2번째 인덱스에 삽입하는 예제입니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      int[] intArr = { 10, 20, 30, 40, 50 };
      List<int> list = new List<int>(intArr);

      Console.WriteLine("List의 요소들...");
      foreach(int i in list) {
         Console.WriteLine(i);
      }

      intArr = new int[] { 300, 400, 500 };
      Console.WriteLine("새 요소 범위 삽입 후...");
      list.InsertRange(2, intArr);

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

실행 결과

List의 요소들...
10
20
30
40
50
새 요소 범위 삽입 후...
10
20
300
400
500
30
40
50

정리

InsertRange() 메서드는 여러 개의 요소를 한 번에 List에 추가해야 할 때 매우 유용합니다. 단일 요소만 추가하고 싶다면 Insert() 메서드를, 단순히 끝에 추가만 하면 되는 경우라면 AddRange() 또는 Add() 메서드를 사용하면 됩니다. 상황에 맞는 메서드를 선택하면 더 효율적인 코드를 작성할 수 있습니다.