1. 使用字典原因
通常情況下,我們可以通過int類型的索引號來從數組或者list集合中查詢所需的數據。但是如果情況稍微復雜一點:索引號是非int型數據比如string或其他類型該如何操作呢。這個時候我們就可以使用字典了。
2. 什么是字典
顧名思義,字典是一種讓我們可以通過索引號查詢到特定數據的數據結構類型。
關鍵字 DIctionary
3. 用法及注意事項
(1) C#的Dictionary<Tkey,TValue>類在內部維護兩個數組來實現該功能。一個keys數組容納要從其映射的鍵,另一個values容納映射到的值。在Dictionary<Tkey,TValue>集合中插入鍵/值對時,將自動記錄哪
個鍵和哪個值關聯,從而允許開發人員快速和簡單地獲取具有指定鍵的值。
(2)C#的Dictionary<Tkey,TValue>集合不能包含重復的鍵。調用Add方法添加鍵數組中已有的鍵將拋出異常。但是,如果使用方括號記法(類似給數組元素賦值)來添加鍵/值對,就不用擔心異常——如果鍵已
經存在,其值就會被新值覆蓋。可用ContainKey方法測試Dictionary<Tkey,TValue>集合是否已包含特定的鍵。
(3)Dictionary<Tkey,TValue>集合內部采用一種稀疏數據結構,在有大量內存可用時才最高效。隨着更多元素的插入,Dictionary<Tkey,TValue>集合可能快速消耗大量內存。
(4)用foreach遍歷Dictionary<Tkey,TValue>集合返回一個KeyValuePair<Tkey,TValue>。該結構包含數據項的鍵和值拷貝,可通過Key和Value屬性防蚊每個元素。元素是只讀的,不能用它們修改Dictionary<Tkey,TValue>集合中的數據。
4. 實例
Dictionary<string,string> students=new Dictionary<string,string>();
插入:
students.Add ("S001","張三");
students.Add ("S002","李四");
students["S003"]="王五";
刪除:
students.Remove ("S000"); //直接刪除建即可
修改:
直接復制即可 students["S003"]="王五";
查詢:
foreach(KeyValuePair<string,string> stu in students) //查詢所Keys 和Value
Debug.Log ("Key:"+stu.Key+" Name:"+stu.Value);
foreach (string value in students.Values)
Debug.Log (value);
foreach (string key in students.Keys)
Debug.Log (key);