일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- invokec#events
- 자료구조
- inputsystem
- 인터페이스
- InputManager
- delegate
- 배열
- ObjectPool
- 스파르타내일배움캠프
- 프로그래머스
- 비선형자료구조
- 스택
- LINQ
- soundmanager
- FSM
- 코루틴
- 메서드
- 유한상태머신
- skybox
- 직렬화
- 유니티
- 장애물달리기
- unity
- Generic
- BGM
- script
- UI
- 효과음
- c#
- 람다식
- Today
- Total
Unity 개발일지
[C#] Dictionary(딕셔너리) 사용법 본문
TextRpg를 만드는 중 플레이어의 직업을 영문명이 아닌 한글로 정의할 수 없을까에 대해 고민하던 중
"키를 입력하면 값을 가져올 수 있는 방법이 있으면 어떨까?" 라는 조언을 듣고 찾다가
Dictionary를 사용해보자는 결론에 도달했다.
Dictionary
Dictionary는 Collection(자료를 모아 놓은 데이터 구조)의 일종으로 키와 값으로 구성된 데이터를 저장한다.
Dictionary는 중복된 키를 가질 수 없으며, 키와 값의 쌍을 이루어 데이터를 저장한다.
Divtionary를 사용하기 위해서는 using System.Colloection.Generic;이 상단에 선언되어있어야한다.
List와의 차이점
List는 인덱스 번호를 사용하여 요소의 값을 얻는다. 그에 반해 Dictionary는 Key값을 사용하여 Value를 취득하므로, 숫자 이외의 문자열 등을 키로 지정하여 세트의 값을 뽑아낼 수 있다. 항목과 그 값이 세트 데이터로 다루어질 필요가 있는 경우에 사전형을 이용한다.
Dictionary 사용법
Dictionary<Key데이터형, Value데이터형> 오브젝트명
= new Dictionary<Key데이터형, Value데이터형>();
딕셔너리의 기본 선언형이다.
var 오브젝트명 = new Dictionary<Key데이터형, Value데이터형>();
으로도 선언할 수 있지만 var는 지역변수이므로 사용할 수 있는 곳이 제한된다.
Player.cs에서 열거형으로 Job 목록을 작성하였고, Player 클래스에서 Job 프로퍼티를 작성하였다.
Program.cs에서 GameManager 클래스에 player 인스턴스 생성 후,
열거형을 받을 수 있는 Job을 Key값으로, 한글명을 적을 수 있는 string을 Value값으로 지정하였다.
Add(Key, Value); 로 요소를 추가할 수 있으며 Remove(Key또는Value); 로 요소를 삭제할 수 있다.
Dictionary<Key, Value> 오브젝트명 = new Dictionary<Key, Value>()
{
{Key0, Value0}
{Key1, Value1}
...
}
으로 선언과 동시에 값을 지정해줄 수 있다.
List와 비슷하게 오브젝트명[Key값] 으로 Value를 호출할 수 있으며
Key값과 Value값을 모두 확인하고 싶다면 foreach문을 사용하고,
Key값만 얻고싶으면 오브젝트명.Keys / Value값만 얻고싶다면 오브젝트명 .Values 속성을 사용해보자.
Mage가 아닌 마법사로 표시된다!
'C#' 카테고리의 다른 글
[C#] 프로그래머스 머쓱이보다 키 큰 사람 (0) | 2024.05.07 |
---|---|
[C#] Newtonsoft.Json 을 이용하여 콘솔창에서 Save/Load 기능 만들기 (1) | 2024.05.02 |
[C#] 정적배열(Array)과 동적배열(Dynamic Array) (0) | 2024.04.29 |
[C#] 정적(Static) 필드와 메서드 (2) | 2024.04.26 |
[C#] 무한루프를 이용해 잘못된 입력을 받았을 때 메세지 띄우기 (0) | 2024.04.25 |