Dictionary<TKey,TValue> 與 Hashtable區別
阿新 • • 發佈:2022-05-30
儲存資料型別區別
特定型別(不包括 Object)的 Dictionary<TKey,TValue> 與 Hashtable 相比可為值型別提供更好的效能。
這是因為 Hashtable 的元素屬於 Object 型別;因此,裝箱和取消裝箱通常發生在儲存或檢索值型別時。
可能有多個執行緒同時訪問該集合時,應使用 ConcurrentDictionary<TKey,TValue> 類。
拓展:執行緒安全資料型別
帶Concurrent 關鍵的資料型別
具體如下
型別 | 描述 |
---|---|
BlockingCollection |
為實現 IProducerConsumerCollection |
ConcurrentDictionary<TKey,TValue> | 鍵值對字典的執行緒安全實現。 |
ConcurrentQueue |
FIFO(先進先出)佇列的執行緒安全實現。 |
ConcurrentStack |
LIFO(後進先出)堆疊的執行緒安全實現。 |
ConcurrentBag |
無序元素集合的執行緒安全實現。 |
IProducerConsumerCollection |
型別必須實現以在 BlockingCollection 中使用的介面。 |
https://docs.microsoft.com/zh-cn/dotnet/standard/collections/thread-safe/