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使用spa
1)實例化 Dictionary<int, string> dic = new Dictionary<int, string>();線程
添加 dic.Add(1, "one");排序
提取: string a = dic[1]; //oneinput
鍵不能重複,值能夠重複。同步
排序: var dicNew=from d in dic order by d.key select d;