C# - 2차원 리스트 선언 및 초기화

2차원 리스트 선언 및 초기화하는 방법을 소개합니다.

1. 2차원 리스트 선언 및 초기화

2차원 리스트는 List<List<Type>> 처럼, 리스트의 타입을 리스트로 선언하면 됩니다.

List<List<string>> list = new List<List<string>>();

선언과 동시에 초기화를 하려면, 아래와 같이 요소들을 List<Type>과 같은 리스트 객체로 입력하면 됩니다. 출력할 때도 for문으로 List<Type> 객체를 가져와서 출력할 수 있습니다.

using System;

namespace Example {

    public class Program {

        public static void Main(string[] args) {

            List<List<string>> list = new List<List<string>>() {
                new List<string> {"a", "b", "c"},
                new List<string> {"d", "e", "f"},
                new List<string> {"g", "h", "i"},
            };

            for (int i = 0; i < list.Count; i++) {
                List<string> element = list.ElementAt(i);
                Console.WriteLine(string.Join(", ", element));
            }
        }
    }
}

Output:

a, b, c
d, e, f
g, h, i

[i, j]와 같은 방식으로 접근은 어렵지만, 행(row) 리스트를 먼저 가져오고 거기서 열(column) 값을 가져올 수 있습니다.

List<List<string>> list = new List<List<string>>() {
    new List<string> {"a", "b", "c"},
    new List<string> {"d", "e", "f"},
    new List<string> {"g", "h", "i"},
};

for (int i = 0; i < list.Count; i++) {
    List<string> row = list.ElementAt(i);
    for (int j = 0; j < row.Count; j++) {
        string element = row.ElementAt(j);
        Console.WriteLine("[{0}, {1}] = {2}", i, j, element);
    }
}

Output:

[0, 0] = a
[0, 1] = b
[0, 2] = c
[1, 0] = d
[1, 1] = e
[1, 2] = f
[2, 0] = g
[2, 1] = h
[2, 2] = i

2. 2차원 리스트 선언 후 요소 추가

2차원 리스트 선언 및 빈 리스트를 먼저 생성하고, 그 다음에 Add() 함수로 요소들을 추가할 수도 있습니다.

using System;

namespace Example {

    public class Program {

        public static void Main(string[] args) {

            List<List<string>> list = new List<List<string>>();
            list.Add(new List<string> {"a", "b", "c"});
            list.Add(new List<string> {"d", "e", "f"});
            list.Add(new List<string> {"g", "h", "i"});

            for (int i = 0; i < list.Count; i++) {
                List<string> element = list.ElementAt(i);
                Console.WriteLine(string.Join(", ", element));
            }
        }
    }
}

Output:

a, b, c
d, e, f
g, h, i
Loading script...
codechachaCopyright ©2019 codechacha