《.NET 性能优化》—第五章 集合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhonghua_csdn/article/details/90709041

集合类

请避免使用 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 中使用的接口。

猜你喜欢

转载自blog.csdn.net/zhonghua_csdn/article/details/90709041
今日推荐