딕셔너리란?
딕셔너리는 키와 값으로 데이터를 저장하는 자료구조이다.
키를 통해 값을 빠르게 검색하고, 업데이트할 수 있다.
간단한 예제를 살펴보자.
생성 및 추가
Dictionary<string, int> scores = new Dictionary<string, int>();
scores.Add("Player1", 97);
검색
int score = scores["Player1"];
제거
scores.Remove("Player1");
그리고 foreach를 이용하여, 모든 키/값을 반복하여 확인할 수 있다.
foreach를 이용하여 키만 검색하기
Dictionary<string, int> scores = new Dictionary<string, int> { {"Player1", 1}, {"Player2", 2} };
foreach (string key in scores.Keys)
{
Console.WriteLine(key); // Player1, Player2
}
foreach를 이용하여 값만 검색하기
foreach (int value in scores.Values)
{
Console.WriteLine(value);
}
해시테이블 이란?
딕셔너리의 키가 어떤 타입이든, 해시 테이블 구조에서는 키 값을 고유한 해시코드로 생성하여 데이터를 조회하기 때문에 매우 빠른 데이터 접근이 가능하다. 순회 x
using System;
using System.Collections.Generic;
public class Inventory
{
private Dictionary<string, int> items = new Dictionary<string, int>();
// 아이템 추가
public void AddItem(string itemName, int quantity = 1)
{
if (items.ContainsKey(itemName))
{
items[itemName] += quantity; // 있으면 수량추가
}
else
{
items[itemName] = quantity; // 없으면 아이템 추가
}
}
public void RemoveItem(string itemName, int quantity = 1)
{
if (items.ContainsKey(itemName))
{
items[itemName] -= quantity;
if (items[itemName] <= 0)
{
//제거
items.Remove(itemName);
}
}
}
// 인벤토리 표시
public void PrintInventory()
{
foreach (var item in items)
{
// 로직
}
}
}
이걸 왜 안썼지 ????????????????????????????? ????????????????????????????? ????????????????????????????? ?????????????????????????????
'[UNITY],[C#] > TIL : UNITY' 카테고리의 다른 글
[Unity] Mathf 함수 정리하기 (0) | 2024.11.04 |
---|---|
[디자인패턴] 명령패턴 (0) | 2024.11.01 |
[디자인패턴] 이벤트 버스 패턴 (0) | 2024.10.30 |
[디자인패턴] 상태패턴 (0) | 2024.10.29 |
[디자인패턴] 전략패턴에 관하여 (0) | 2024.10.28 |