🍀 Unity
[C#] 컬렉션 (List, Dictionary)
수구마
2025. 6. 1. 14:53
컬렉션은 여러 개의 데이터를 저장하는 자료구조이다.
배열과 달리 중간에 데이터를 삽입하거나 삭제할 수 있다.
1. 리스트
List<타입> 리스트이름 = new List<타입>();
List<string> names = new List<string>();
names.Add("1민지");
names.Add("2하니");
foreach (string name in names)
{
Debug.Log(name);
}
names.RemoveAt(1);
for (int i = 0; i < names.Count; i++)
{
Debug.Log(names[i]);
}
name은 foreach문에서만 사용되는 지역변수이다.
리스트이름.Add
로 데이터 추가
리스트이름.RemoveAt(0)
으로 0번 데이터 제거
리스트이름.Remove("이름")
으로 "이름"데이터를 지울 수 있음
c#은 대소문자 구분이 중요
Debug.Log(names.Contains("민지"));
"민지"라는 데이터가 들어있는지 boolean값출력
리스트이름.Clear();
로 리스트의 내용을 비울 수 있다
리스트이름.IndexOf("");
리스트에서 특정 데이터가 어디있는지 출력
Debug.Log(names.IndexOf("민지")); ⤵️
2. 딕셔너리
key와 value가 한세트
key는 숫자일수도 문자열일수도
value는 데이터
Dictionary<string,string> keyValuePairs = new Dictionary<string,string>();
keyValuePairs.Add("사랑", "사랑은어떤것");
keyValuePairs.Add("게임", "게임은어떤것");
int값으로 사용해도 되지만 key 값은 일반적으로 string을 사용한다.
Dictionary<string,string> keyValuePairs = new Dictionary<string,string>();
keyValuePairs.Add("사랑", "사랑은어떤것");
keyValuePairs.Add("게임", "게임은어떤것");
Debug.Log(keyValuePairs.ContainsKey("사랑"));
keyValuePairs.Remove("사랑");
Debug.Log(keyValuePairs.ContainsKey("사랑"));
Dictionary<string,string> pairs = new Dictionary<string,string>();
pairs.Add("사랑", "사랑은어떤것");
pairs.Add("게임", "게임은어떤것");
foreach(KeyValuePair<string,string> kvp in pairs)
{
Debug.Log(kvp.Key+": "+kvp.Value);
}
kvp는 foreach문에서만 사용되는 지역변수이다.
Dictionary<string,string> dict = new Dictionary<string,string>();
dict.Add("사랑", "사랑은어떤것");
dict.Add("게임", "게임은어떤것");
foreach(string key in dict.Keys)
{
Debug.Log(key+": " + dict[key]);
}
dict.Keys는 dict라는 딕셔너리의 모든 key가 모여있는 객체를 리턴한다. The keys() method returns a view object.