C#/배열

[C#]배열을 리스트로(Array to List), 리스트를 배열로(List to Array)

DevStory 2021. 10. 4.

이번 포스팅에서는 C#에서 배열을 리스트로 변환하는 방법과 리스트를 배열로 변환하는 방법을 설명합니다.

 

사용 방법이 심플하기 때문에 반복문을 사용하지 않아도 되는 장점이 있습니다.

 


배열을 리스트로 1. Enumerable.ToList() 메서드

LINQ에서 제공하는 ToList() 메서드를 사용합니다.

 

다음 코드는 int형 배열을 List로 변환하는 코드입니다.

int[] intArray = { 1, 2, 3, 4, 5 };

List<int> intList = intArray.ToList();
Console.WriteLine($"intList : {String.Join(", ", intList)}");

실행 결과

 

다음 코드처럼 클래스 객체의 배열도 List로 변환할 수 있습니다.

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        Person[] personArray =
        {
            new Person { Name = "Tom", Age = 20 },
            new Person { Name = "Nick", Age = 25 },
            new Person { Name = "Katy", Age = 24 }
        };

        List<Person> personeList = personArray.ToList();

        foreach(Person personObj in personeList)
        {
            Console.WriteLine($"Name : {personObj.Name} / Age : {personObj.Age}");
        }
    }
}

실행 결과

반응형

배열을 리스트로 2. List 생성자 사용

List 생성자에 배열을 전달하여 배열을 List로 변환할 수 있습니다.

 

다음 코드는 List 생성자에 int형 배열을 전달하는 코드입니다.

int[] intArray = { 1, 2, 3, 4, 5 };

List<int> intList = new List<int>(intArray);
Console.WriteLine($"intList : {String.Join(", ", intList)}");

실행 결과

 

ToList() 메서드와 마찬가지로 클래스 객체의 배열도 List 생성자를 사용하여 List로 변환할 수 있습니다.

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
    {            
        Person[] personArray =
        {
            new Person { Name = "Tom", Age = 20 },
            new Person { Name = "Nick", Age = 25 },
            new Person { Name = "Katy", Age = 24 }
        };

        List<Person> personeList = new List<Person>(personArray);

        foreach(Person personObj in personeList)
        {
            Console.WriteLine($"Name : {personObj.Name} / Age : {personObj.Age}");
        }
    }
}

실행 결과


배열을 리스트로 3. List<T>.AddRange() 메서드

List에서 제공하는 AddRange() 메서드를 사용하여 배열을 List로 변환할 수 있습니다.

 

다음은 AddRange() 메서드의 구문입니다.

public void AddRange (System.Collections.Generic.IEnumerable<T> collection);

AddRange() 메서드는 매개 변수로 받은 collection 인자를 List의 끝에 추가합니다.

 

다음은 AddRange() 메서드를 사용하여 배열을 List에 추가한 코드입니다.

int[] intArray = { 1, 2, 3, 4, 5 };

List<int> intList = new List<int>();

intList.AddRange(intArray);

Console.WriteLine($"intList : {String.Join(", ", intList)}");

실행 결과

List 객체를 생성 후 AddRange() 메서드에 배열을 전달하는 방식으로 배열을 리스트로 변환할 수 있습니다.

 

클래스 객체의 배열도 AddRange() 메서드를 사용하여 List 객체에 추가할 수 있습니다.

Person[] personArray =
{
    new Person { Name = "Tom", Age = 20 },
    new Person { Name = "Nick", Age = 25 },
    new Person { Name = "Katy", Age = 24 }
};

List<Person> personeList = new List<Person>();

personeList.AddRange(personArray);

리스트를 배열로 List<T>.ToArray() 메서드

다음은 List를 배열로 변환하는 방법입니다.

 

List의 ToArray()를 사용하여 배열로 변환할 수 있습니다.

 

다음은 int형 List를 배열로 변환하는 코드입니다.

List<int> intList = new List<int>() { 1, 2, 3, 4, 5};

int[] intArray = intList.ToArray();

Console.WriteLine($"intArray : {String.Join(", ", intArray)}");

실행 결과

 

클래스 타입인 List 객체도 배열로 변환할 수 있습니다.

List<Person> personeList = new List<Person>
{
    new Person { Name = "Tom", Age = 20 },
    new Person { Name = "Nick", Age = 25 },
    new Person { Name = "Katy", Age = 24 }
};

Person[] personArray = personeList.ToArray();

foreach(Person personObj in personArray)
{
    Console.WriteLine($"Name : {personObj.Name} / Age : {personObj.Age}");
}
반응형

댓글