Dictionary 是 .NET 上很常用到的類別,但它有個缺點,就是索引值不存在卻用該索引值去取值,就會發生 Exception 。所以在使用上,都會呼叫 ContainsKey 確認索引值是否存在,但也造成了一些不便。假如在索引值的型別上,確定是使用字串,那 HybridDictionary 會是一個不錯的選擇。
在 MSDN 上有一段敘述:
它利用具有小集合的 ListDictionary 之增強效能,並提供彈性來切換至處理較大集合較 ListDictionary 更好的 Hashtable。
除了這個優點,個人認為比起 Dictionary 要額外判斷索引值的存在, HybridDictionary 在這方面做得比較好,以下是程式碼範例。
HybridDictionary dic = new HybridDictionary(); string strKey1 = "Key1"; string strKey2 = "Key2"; Console.WriteLine(string.Format("使用不存在的Key:{0}", dic[strKey1])); dic[strKey2] = "value1"; Console.WriteLine(string.Format("使用已存在的Key:{0}", dic[strKey2]));
執行結果
參考資料