Dictionary<TKey, TValue>
類型安全,是較好的選擇
Hashtable
- 類型安全性:
- Hashtable 繼承 Object
Hashtable
非類型安全。存儲鍵和值時以物件形式,取值時需進行類型轉換。
- 性能:
- 由於需要進行裝箱和拆箱操作,性能相對較慢。
- 命名空間:
- 位於
System.Collections
命名空間。
- 位於
- 適用情況:
- 適用於不需要類型安全或需要維護舊代碼的情況。
Hashtable hashtable = new Hashtable();
hashtable["key"] = "value";
string value = (string)hashtable["key"]; // 需要類型轉換
Dictionary
- 類型安全性:
Dictionary<TKey, TValue>
類型安全。編譯時進行類型檢查,避免需要類型轉換。
- 性能:
- 由於避免裝箱和拆箱,性能優於
Hashtable
。
- 由於避免裝箱和拆箱,性能優於
- 命名空間:
- 位於
System.Collections.Generic
命名空間。
- 位於
- 適用情況:
- 現代 C# 開發中,推薦使用
Dictionary
。
- 現代 C# 開發中,推薦使用
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary["key"] = "value";
string value = dictionary["key"]; // 不需要類型轉換
Unity 中的 Dictionary 示例
using System.Collections.Generic;
using UnityEngine;
public class Example : MonoBehaviour
{
Dictionary<string, int> scoreDictionary = new Dictionary<string, int>();
void Start()
{
// 添加元素
scoreDictionary.Add("Player1", 100);
scoreDictionary.Add("Player2", 150);
// 訪問元素
int player1Score = scoreDictionary["Player1"];
Debug.Log("Player1 Score: " + player1Score);
// 更新元素
scoreDictionary["Player1"] = 200;
Debug.Log("Updated Player1 Score: " + scoreDictionary["Player1"]);
}
}
此範例展示了如何使用 Dictionary
存儲和管理玩家得分,顯示了其類型安全和使用便利性。