2차원 List <string>를 사용해야하는데 List를 담는 List부분만
초기화를 하고싶은데 어떻게 하는지를 모르겠어서 찾아봤다.
C++의 벡터같은 경우는
vector<vector<string>> v;
v.resize(3);
이런식으로 하면 vector<string> 3개를 담는 벡터 v가 생성되어서
v[2], v[1] 이런식으로 접근이 가능해진다.
하지만 C# 같은 경우는 new키워드로 늘 초기화를 해줘야 하니 익숙하지 않아서
다양한 방법을 시도해보았다.
List<List<string>> target;
List<string> tmp;
private void Awake(){
tmp=new List<string>();
target= new List<List<string>>();
for(int i=0;i<3;i++){
target.push(tmp);
}
}
이렇게 하면 당연히 target[2] 이런식으로 접근은 가능하지만 list는 크기 상관하지말고 쓰라는 자료구조인데
굳이 리스트 두개를 써야하나 해서
생각을 바꿔서 list배열을 선언해줬다.
List<string>[] target;
private void Awake(){
target= new list<string>[3];
for(int i=0;i<3;i++){
target[i]=new List<string>();
}
}
이런식으로 3개의 리스트를 할당해준 후 각 리스트를 new키워드를 이용해
생성해줬더니 원하는대로 잘 작동을 하였다.