C#에서 List 컬렉션을 배열로 복사하려면 먼저 리스트를 생성해야 합니다.
List<string> list1 = new List<string>();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");다음으로 문자열 배열을 선언하고 CopyTo() 메서드를 사용하여 리스트의 요소를 배열에 복사합니다.
string[] arr = new string[20]; list1.CopyTo(arr);
CopyTo() 메서드는 List의 모든 요소를 대상 배열의 첫 번째 인덱스부터 순서대로 복사합니다. 이때 배열의 크기는 복사할 요소 수보다 크거나 같아야 하며, 그렇지 않으면 ArgumentException이 발생합니다. 또한 특정 인덱스부터 복사하고 싶다면 CopyTo(array, index) 오버로드를 사용할 수 있습니다.
아래 예제를 통해 List를 1차원 배열로 복사하는 전체 과정을 확인해 보겠습니다.
예제
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo {
public static void Main() {
List<string> list1 = new List<string>();
list1.Add("One");
list1.Add("Two");
list1.Add("Three");
list1.Add("Four");
Console.WriteLine("첫 번째 리스트...");
foreach(string value in list1) {
Console.WriteLine(value);
}
string[] arr = new string[20];
list1.CopyTo(arr);
Console.WriteLine("복사 후...");
foreach(string value in arr) {
Console.WriteLine(value);
}
}
}실행 결과
첫 번째 리스트... One Two Three Four 복사 후... One Two Three Four
위 코드에서는 요소가 4개인 List를 생성한 뒤, 크기가 20인 문자열 배열에 CopyTo() 메서드로 복사했습니다. 배열의 나머지 16개 요소는 기본값인 null로 유지되며, 복사된 4개의 값은 배열의 시작 위치부터 순서대로 저장됩니다.