什麼是 Dictionaries
當資料型態具有 key/value 特性時,就可以使用 Dictionary 類型的集合。它可以用來建立索引表,將任意的 key 與 value 做關連對應。.NET Framework 包含下列 Dictionary 類別:
- Hashtable :最基本的字典集合,每個項目都是儲存在 DictionaryEntry 物件中的 key/value 組。可透過 key 取得項目的 value。
- SortedList :類似 Hashtable,會自動以 key 排序集合內的項目。
- ListDictionary :當集合項目少於10個時,採用這個集合類別效率較佳。
- HybridDictionary :使用這個集合,當集合項目少於10個時,會採用 ListDictionary ,若項目變大時,會自動轉成 Hashtable 。
- OrderedDictionary :類似 Hashtable ,但集合中的項目會依加入的先後順序排列,不像 Hashtable 是依 hashcode 排列。
底下二個是比較特殊類似字典的集合
- StringDictionary :類似 Hashtable ,但 key/value 都只允許字串型別, Key 不能重複,一個 key 只能對應一個 value 。
- NameValueCollection :類似 Hashtable ,但 key/value 都只允許字串型別, Key 不能重複,一個 key 可以對應多個 value 。
下列幾點是有關於 Dictionary 的幾點特性:
- 每個項目都是儲存在 DictionaryEntry 物件中的 Key/Value。
- Key 必需唯一的。
- Value 可以是 null ,而且不一定要是唯一的。
- IDictionary 實作分為三類:唯讀、固定大小、變數大小。
- 唯讀的 IDictionary 物件無法修改。
- 固定大小的 IDictionary 物件不允許加入或移除項目,但允許修改現有項目。
- 變數大小的 IDictionary 物件允許加入、移除和修改項目。