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

C# List 컬렉션을 배열로 복사하는 방법

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개의 값은 배열의 시작 위치부터 순서대로 저장됩니다.