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;