Unity/Csharp/Dictionary
提供: 初心者エンジニアの簡易メモ
目次
ディクショナリサンプル
空のDictionaryを作成
using System.Collections.Generic; Dictionary<string, object> myDictionary = new Dictionary<string, object>();
初期値を含めて作成
Dictionary<string, object> myDictionary = new Dictionary<string, object>() { {"key1", "value1"}, {"key2", 123}, {"key3", true}, {"key4", 3.14f} };
データ追加
using UnityEngine; using System.Collections.Generic; public class DictionaryExample : MonoBehaviour { void Start() { Dictionary<string, object> gameData = new Dictionary<string, object>(); gameData.Add("playerName", "Player1"); gameData.Add("score", 1000); gameData.Add("isAlive", true); gameData.Add("position", new Vector3(1.0f, 2.0f, 3.0f)); // 値にアクセス string name = (string)gameData["playerName"]; int score = (int)gameData["score"]; Vector3 pos = (Vector3)gameData["position"]; Debug.Log($"Player: {name}, Score: {score}, Position: {pos}"); } }
独自クラスディクショナリ
using System.Collections.Generic; Dictionary<string, Car> cars = new Dictionary<string, Car>(); Car bg1 = new Car("Lexas", 50); Car bg2 = new Car("Rx8", 100); cars.Add("Lexas", bg1); cars.Add("Rx8", bg2); Car car = cars["Lexas"];
宣言時にデータを入れる場合
Dictionary<string, Car> cars = new Dictionary<string, Car>() { { "Lexas", new Car("Lexas", 50)}, { "Rx8", new Car("Rx8", 100)}, };
ディクショナリをenumキーで
Dictionary<HogeType, Button> enumDict = new Dictionary<HogeType, Button>();
ディクショナリforeach
foreach(KeyValuePair<HogeType, Button> pair in enumDict) { Debug.Log (pair.Key + " " + pair.Value); }
ディクショナリのキーの存在判定
if (cars.ContainsKey("Lexas")) { // 存在するとき }
TryGetValueを使うとき
if (cars.TryGetValue("Lexas", out Car carvalue)) { return carvalue; } return null;