Dictionary<TKey, TValue> 泛型類提供了從一組鍵到一組值的映射。通過鍵來檢索值的速度是非常快的,接近於 O(1),這是因為 Dictionary<TKey, TValue> 類是作為一個哈希表來實現的。檢索速度取決於為 TKey 指定的類型的哈希算法的質量。TValue可以是值類型,數組,類或其他。
線程安全:CSDN上說法:
只要不修改該集合,Dictionary<TKey, TValue> 就可以同時支持多個閱讀器。即便如此,從頭到尾對一個集合進行枚舉本質上並不是一個線程安全的過程。當出現枚舉與寫訪問互相爭用這種極少發生的情況時,必須在整個枚舉過程中鎖定集合。若允許多個線程對集合執行讀寫操作,您必須實現自己的同步。
讀寫並行的時候需要加鎖,但是加上鎖性能就會受影響。
ConcurrentDictionary<TKey, TValue> framework4出現的,可由多個線程同時訪問,且線程安全。用法同Dictionary很多相同,但是多了一些方法。ConcurrentDictionary 屬於System.Collections.Concurrent 命名空間按照CSDN上所說:System.Collections.Concurrent 命名空間提供多個線程安全集合類。當有多個線程並發訪問集合時,應使用這些類代替 System.Collections 和 System.Collections.Generic 命名空間中的對應類型。
一 Dictionary使用
1)實例化 Dictionary<int, string> dic = new Dictionary<int, string>();
添加 dic.Add(1, "one");
提取: string a = dic[1]; //one
鍵不能重復,值可以重復。
排序: var dicNew=from d in dic order by d.key select d;
