集合类
请避免使用 System.Collections 命名空间中的类型。 推荐使用泛型版本和并发版本的集合,因为它们的类型安全性很高,并且还经过了其他改进。
System.Collections.Generic 命名空间包含定义泛型集合的接口和类,用户可以使用泛型集合来创建强类型集合,这种集合能提供比非泛型强类型集合更好的类型安全性和性能。
集合 | 描述 |
---|---|
ArrayList,List<T> | 列表,List<T> 是 ArrayList 的泛型形式。 |
Stack<T> | 栈 |
Queue<T> | 队列 |
HashSet<T>,SortedSet<T> | 集,包含不重复元素的集合成为“集(set)”.其中,HashSet<T> 集合包含不重复元素的无序列表;SortedSet<T> 集合包含不重复元素的有序列表。 |
LinkedList<T> | 双向链表 |
Dictionary<TKey, TValue> | 字典,允许按照某个键来访问元素。字典也称为映射或散列表。字典的主要特征是能根据键快速查找值。也可以自由添加和删除元素,这有点 List<T> 类,但没有在内存中移动后续元素的性能开销。 |
SortedDictionary<TKey, TValue> | 有序字典,是一个二叉搜索树,其中的元素根据键来排序。该键类型必须实现 IComparable<TKey> 接口。 |
SortedList<TKey, TValue> | 有序链表,该类按照键给元素排序。 |
线程安全集合
下表列出了 System.Collections.Concurrent 命名空间中的集合类型。
类型 | 说明 |
---|---|
BlockingCollection<T> | 为实现 IProducerConsumerCollection<T> 的所有类型提供限制和阻止功能。 有关详细信息,请参阅 BlockingCollection 概述。 |
ConcurrentDictionary<TKey,TValue> | 键值对字典的线程安全实现。 |
ConcurrentQueue<T> | FIFO(先进先出)队列的线程安全实现。 |
ConcurrentStack<T> | LIFO(后进先出)堆栈的线程安全实现。 |
ConcurrentBag<T> | 无序元素集合的线程安全实现。 |
IProducerConsumerCollection<T> | 类型必须实现以在 BlockingCollection 中使用的接口。 |