1. 使用字典原因
通常情況下沐旨,我們可以通過int類型的索引號來從數(shù)組或者list集合中查詢所需的數(shù)據(jù)矾湃。但是如果情況稍微復(fù)雜一點:索引號是非int型數(shù)據(jù)比如string或其他類型該如何操作呢。這個時候我們就可以使用字典了匹耕。
2. 什么是字典
顧名思義烛缔,字典是一種讓我們可以通過索引號查詢到特定數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)類型。
關(guān)鍵字 DIctionary
3. 用法及注意事項
- (1)C#的Dictionary<Tkey柜砾,TValue>類在內(nèi)部維護兩個數(shù)組來實現(xiàn)該功能湃望。一個keys數(shù)組容納要從其映射的鍵,另一個values容納映射到的值痰驱。在Dictionary<Tkey证芭,TValue>集合中插入鍵/值對時,將自動記錄哪個鍵和哪個值關(guān)聯(lián)担映,從而允許開發(fā)人員快速和簡單地獲取具有指定鍵的值废士。
- (2)C#的Dictionary<Tkey,TValue>集合不能包含重復(fù)的鍵另萤。調(diào)用Add方法添加鍵數(shù)組中已有的鍵將拋出異常湃密。但是,如果使用方括號記法(類似給數(shù)組元素賦值)來添加鍵/值對四敞,就不用擔(dān)心異撤涸矗——如果鍵已經(jīng)存在,其值就會被新值覆蓋忿危〈锕浚可用ContainKey方法測試Dictionary<Tkey,TValue>集合是否已包含特定的鍵铺厨。
- (3)Dictionary<Tkey缎玫,TValue>集合內(nèi)部采用一種稀疏數(shù)據(jù)結(jié)構(gòu)硬纤,在有大量內(nèi)存可用時才最高效。隨著更多元素的插入赃磨,Dictionary<Tkey筝家,TValue>集合可能快速消耗大量內(nèi)存。
- (4)用foreach遍歷Dictionary<Tkey邻辉,TValue>集合返回一個KeyValuePair<Tkey溪王,TValue>。該結(jié)構(gòu)包含數(shù)據(jù)項的鍵和值拷貝值骇,可通過Key和Value屬性防蚊每個元素莹菱。元素是只讀的,不能用它們修改Dictionary<Tkey吱瘩,TValue>集合中的數(shù)據(jù)道伟。
4. 實例
Dictionary<string,string> students=new Dictionary<string,string>();
插入:
students.Add ("S001","張三");
students.Add ("S002","李四");
students["S003"]="王五";
刪除:
students.Remove ("S000"); //直接刪除建即可
修改:
直接復(fù)制即可 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);