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

C#에서 ArrayList의 요소를 새 배열로 복사하는 방법

C#에서 ArrayList에 저장된 모든 요소를 새로운 배열로 복사하려면 ToArray() 메서드를 사용하면 됩니다. 이 메서드는 ArrayList의 요소를 순서대로 object 타입 배열에 담아 반환합니다.

아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.

예제 1: 문자열 요소 복사하기

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      ArrayList list = new ArrayList(10);
      list.Add("A");
      list.Add("B");
      list.Add("C");
      list.Add("D");
      list.Add("E");
      list.Add("F");
      list.Add("G");
      list.Add("H");
      list.Add("I");
      list.Add("J");

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

      Console.WriteLine("ArrayList에서 복사한 배열 요소...");
      object[] ob = list.ToArray();
      foreach(string str in ob){
         Console.WriteLine(str);
      }
   }
}

출력 결과

ArrayList 요소...
A
B
C
D
E
F
G
H
I
J
ArrayList에서 복사한 배열 요소...
A
B
C
D
E
F
G
H
I
J

코드 설명

먼저 초기 용량이 10인 ArrayList를 생성하고, 알파벳 A부터 J까지 문자열을 추가했습니다. 그런 다음 list.ToArray()를 호출하여 ArrayList의 모든 요소를 object[] 배열로 복사했습니다. 마지막으로 foreach 반복문을 통해 원본 ArrayList와 복사된 배열의 내용을 각각 출력하여 두 데이터가 동일함을 확인할 수 있습니다.

예제 2: 정수 요소 복사하기

이번에는 정수형 데이터를 저장한 ArrayList를 배열로 복사하는 예제입니다.

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      ArrayList list = new ArrayList(10);
      list.Add(100);
      list.Add(200);
      list.Add(300);

      Console.WriteLine("ArrayList 요소...");
      foreach(int val in list){
         Console.WriteLine(val);
      }

      Console.WriteLine("ArrayList에서 복사한 배열 요소...");
      object[] ob = list.ToArray();
      foreach(int val in ob){
         Console.WriteLine(val);
      }
   }
}

출력 결과

ArrayList 요소...
100
200
300
ArrayList에서 복사한 배열 요소...
100
200
300

참고 사항

ToArray() 메서드는 항상 object[] 타입의 배열을 반환합니다. 만약 특정 타입의 배열이 필요하다면 ToArray(typeof(int))처럼 타입을 인자로 전달하는 오버로드 버전을 사용하거나, 형 변환(casting)을 활용할 수 있습니다.

또한 최신 C# 개발에서는 타입 안정성이 보장되는 제네릭 컬렉션인 List<T> 사용이 권장됩니다. 다만 레거시 코드나 비제네릭 컬렉션을 다뤄야 하는 상황에서는 위와 같은 방법으로 ArrayList의 요소를 손쉽게 배열로 변환할 수 있습니다.