一般的开发中常用的集合有:
列表:List
集合:Set
字典:Dictionary
队列:Queue
栈:Stack
只要知道了这些名字,在FCL库中可以找到合适的实现,如下列出了各种类,根据需要选择即可。
命名空间 |
引入的.net版本 |
说明 |
集合实例 |
System.Collections |
1.0 |
普通的集合类、接口等 |
ArrayList BitArray HashTable Queue SortedList Stack |
System.Collections.Specialized |
1.0 |
特定的强类型集合 |
HybridDictionary ListDictionary NameValueCollection OrderedDictionary StringCollection StringDictionary |
1.0的集合类仅在兼容以前代码时使用,现在一般使用如下的类 |
|||
System.Collections.Generic |
2.0 |
泛型的集合 更好的类型安全和性能 |
Dictionay<T,V> HashSet<T> LinkedList<T> List<T> Queue<T> SortedDictionary<T,V> SortedSet<T> Statck<T> |
3.0 |
线程安全容器
|
SynchronizedCollection<T> SynchronizedKeyedCollection<K, T > SynchronizedReadOnlyCollection< T > |
|
System.Collections.ObjectModel |
2.0 |
用于属性和方法返回类型 可重用库设计时使用 |
Collection<T> KeyedCollection<T,V> ObervableCollection<T> ReadOnlyCollection<T> ReadOnlyObervableCollection<T> |
System.Collections.Concurrent
|
4.0 |
线程安全集合 处理了线程的并发访问 |
非阻塞[如果一个线程试图提取一个不存在的元素,线程立即返回] ConcurrentBag<T> ConcurrenDictionary<T,V> ConcurrenQueue<T> ConcurrenStack<T> ConcurrenDictionary的枚举GetEnumerator不返回快照,其他返回快照
阻塞集合 BlockingCollection<(T> |
Wintellect’s Power Collections
Wintellect提供了类似STL的集合和算法类
集合类 |
|
BigList<T> |
有序T的结合,操作100个以上的数据项效率高 |
Bag<T> |
无序T的集合,集合进行了哈希处理,允许重复项 |
OrderedBag<T> |
有序T的集合,允许重复项 |
Set<T> |
无序T的集合,不允许重复项 |
OrderedSet<T> |
有序T的集合,不允许重复项 |
Deque<T> |
双端队列 |
OrderedDictionary<T,V> |
字典,键进行了排序 |
MultiDictionary<T,V> |
字典,每个键有多个值,允许重复键,数据项无序 |
Ordered MultiDictionary<T,V> |
字典,每个键有多个值(值也进行了排序),允许重复键,键进行了排序 |
|
|
Algorithms |
针对泛型集合的查找、替换、排序、转换、组合等各种算法的实现类
[优先使用集合类自带的算法函数,只有在没有需要的函数时才使用这些通用的算法和STL的道理一样] |