[C#] 딕셔너리(Dictionary)

Learning 

When: 1학년 6월 8일

 

How:

개인 프로젝트를 만들다가 총알을 여러 개 사용할 일이 생겼는데, 자주 사용하던 배열을 이용한 풀링은 여러 가지 오브젝트를 사용하기 어려워서 딕셔너리에 대해 공부하게 되었습니다.

 

Understanding:

일단 '딕셔너리는 인덱스 대신 제가 정한 키를 사용하는 배열'이라고 미리 머리를 좀 정리하고 설명을 들으면 편할 듯합니다.

  • 기본 구조
Dictionary<키 타입, 값 타입> 딕셔너리 이름 = new Dictionary<>();
//예시)
Dictionary<int, GameObject> bulletPools = new Dictionary<>();

이런 식으로 딕셔너리를 생성할 수 있습니다.

 

  • 사용법
기능 예시 코드 설명
추가 bulletPools.Add(i, basicBullet); 딕셔너리에 값 추가하기
꺼내기 GameObject bullet = bulletPools[1]; 값 가져오기 (배열이랑 키 빼고 똑같음)
수정 bulletPools[1] = superBullet; 덮어쓰기
삭제 bulletPools.Remove(2); 키 삭제하기
확인 bulletPools.ContainsKey(1); 해당 키가 있는지 확인하기

 

  • 배열과 차이점
    딕셔너리는 아까 말씀드렸듯 배열과 상당히 유사한데, 원하는 키를 사용해 값을 찾을 수 있고, 크기도 자동으로 늘어나기 때문에 유연하게 사용할 수 있다는 차이점도 존재합니다.
    단, 배열처럼 순서가 유지되는 건 아니라는 점은 기억해 두는 게 좋습니다. 딕셔너리는 아까 말씀드렸듯 배열과 상당히 유사한데, 원하는 키를 사용해 값을 찾을 수 있고 크기가 계속 변한다는 차이점도 존재합니다.

Result: 딕셔너리는 키가 인덱스가 아닌 배열이라고 생각해도 되고, 종류가 다양한 오브젝트들을 담는 배열처럼 사용할 수 있습니다.

'C#' 카테고리의 다른 글

[C#] as 키워드  (0) 2025.06.19
[C#] try~catch 문  (0) 2025.06.12
[C#] 일반화 프로그래밍 (Generic 형식)  (0) 2025.06.07
[C#] Null값 받을 수 있는 변수, nullable 변수  (0) 2025.05.31
[C#] 인터페이스와 추상 클래스  (0) 2025.05.15