🍀 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.