中集合、容器(Collection)的这些事
一般的开发中常用的集合有:
列表:List
集合:Set
字典:Dictionary
队列:Queue
栈:Stack
只要知道了这些名字,在FCL库中可以到合适的实现,如下列出了各种类,根据需要选择即可。
命名空间
引入的版本
说明
集合实例
System.Collections
1.0
普通的集合类、接口等
ArrayList
BitArray
HashTable
Queue
SortedList
Stack
System.Collections.Specialized
1.0
特定的强类型集合
HybridDictionary
ListDictionary
NameValueCollection
OrderedDictionary
StringCollectionsortedlist
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的道理一样]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。