1. 程式人生 > 其它 >Dictionary<TKey,TValue> 與 Hashtable區別

Dictionary<TKey,TValue> 與 Hashtable區別

儲存資料型別區別

特定型別(不包括 Object)的 Dictionary<TKey,TValue> 與 Hashtable 相比可為值型別提供更好的效能。
這是因為 Hashtable 的元素屬於 Object 型別;因此,裝箱和取消裝箱通常發生在儲存或檢索值型別時。
可能有多個執行緒同時訪問該集合時,應使用 ConcurrentDictionary<TKey,TValue> 類。

拓展:執行緒安全資料型別

帶Concurrent 關鍵的資料型別
具體如下

型別 描述
BlockingCollection 為實現 IProducerConsumerCollection 的所有型別提供限制和阻止功能。 有關詳細資訊,請參閱 BlockingCollection 概述。
ConcurrentDictionary<TKey,TValue> 鍵值對字典的執行緒安全實現。
ConcurrentQueue FIFO(先進先出)佇列的執行緒安全實現。
ConcurrentStack LIFO(後進先出)堆疊的執行緒安全實現。
ConcurrentBag 無序元素集合的執行緒安全實現。
IProducerConsumerCollection 型別必須實現以在 BlockingCollection 中使用的介面。

https://docs.microsoft.com/zh-cn/dotnet/standard/collections/thread-safe/