字典與哈希表
字典類型為(s's'valueType d don not need b'邢),Hashtable不是(s's'valuetype需要b'邢)。Hashtable比字典IMHО有更好的方法來獲取值,因為它總是kn'ws,該值是一個對象。如果您使用.NET3.5,很容易編寫擴展,方法和字典的行為相似。
Hashtable類是dictionary類的一種特定類型,它在鍵的存儲範圍內使用整數值(稱為散列)。Hashtable類使用Hashtable來加速對cöllectin**定鍵的搜索。NET中的每個對象都從該對象類派生。這個類支持GetHash方法,它返回一個唯一標識對象的整數。Hashtable類一般來說是一個非常有效的集合。Hashtable類的唯一問題是它需要一個小的前頭,而小的集合(少於十個元素)前頭可能會妨礙性能。
哈希表和字典之間有一個重要的區別。如果你使用索引器來獲得一個哈希表的值,哈希表將成功地返回空的不存在的項,而如果你嘗試使用字典中不存在的索引器訪問一個項,則字典將出錯。
HashTable是弱類型的基類;DictionaryBase抽象類是純類型的,在內部使用哈希表。
在字典中注意到的一個奇怪的現象是,當我們在字典中添加多個條目時,添加條目的順序保持不變。因此,如果你在字典中使用一個詞庫,你將得到與你**它們的順序相同的記錄。然而,對於標準哈希表,這是不正確的,當你在哈希表中添加相同的記錄時,順序是不被維護的。如果“Dictionary is based〇n Hashtable”是真的,那麼Dictionary為什麼要維護Hashtable dоes nоt?