一般的開發中常用的集合有:
清單:List
集合:Set
字典:Dictionary
隊列:Queue
棧:Stack
隻要知道了這些名字,在FCL庫中可以找到合适的實作,如下列出了各種類,根據需要選擇即可。
<b>命名空間</b>
<b>引入的.net</b><b>版本</b>
<b>說明</b>
<b>集合執行個體</b>
<b>System.Collections</b><b> </b>
1.0
普通的集合類、接口等
ArrayList
BitArray
HashTable
Queue
SortedList
Stack
<b>System.Collections.Specialized</b><b></b>
特定的強類型集合
HybridDictionary
ListDictionary
NameValueCollection
OrderedDictionary
StringCollection
StringDictionary
<b>1.0</b><b>的集合類僅在相容以前代碼時使用,現在一般使用如下的類</b>
<b>System.Collections.Generic</b><b></b>
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 >
<b>System.Collections.ObjectModel</b>
用于屬性和方法傳回類型
可重用庫設計時使用
Collection<T>
KeyedCollection<T,V>
ObervableCollection<T>
ReadOnlyCollection<T>
ReadOnlyObervableCollection<T>
<b>System.Collections.Concurrent</b>
<b> </b>
4.0
線程安全集合
處理了線程的并發通路
非阻塞[如果一個線程試圖提取一個不存在的元素,線程立即傳回]
ConcurrentBag<T>
ConcurrenDictionary<T,V>
ConcurrenQueue<T>
ConcurrenStack<T>
ConcurrenDictionary的枚舉GetEnumerator不傳回快照,其他傳回快照
阻塞集合
BlockingCollection<(T>
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>
字典,每個鍵有多個值(值也進行了排序),允許重複鍵,鍵進行了排序
<b>Algorithms</b><b></b>
針對泛型集合的查找、替換、排序、轉換、組合等各種算法的實作類
[優先使用集合類自帶的算法函數,隻有在沒有需要的函數時才使用這些通用的算法和STL的道理一樣]