集合類(lèi)
請(qǐng)避免使用 System.Collections 命名空間中的類(lèi)型。 推薦使用泛型版本和并發(fā)版本的集合,因?yàn)樗鼈兊念?lèi)型安全性很高,并且還經(jīng)過(guò)了其他改進(jìn)。
System.Collections.Generic 命名空間包含定義泛型集合的接口和類(lèi),用戶可以使用泛型集合來(lái)創(chuàng)建強(qiáng)類(lèi)型集合,這種集合能提供比非泛型強(qiáng)類(lèi)型集合更好的類(lèi)型安全性和性能。
| 集合 | 描述 |
|---|---|
| ArrayList,List<T> | 列表,List<T> 是 ArrayList 的泛型形式。 |
| Stack<T> | 棧 |
| Queue<T> | 隊(duì)列 |
| HashSet<T>,SortedSet<T> | 集,包含不重復(fù)元素的集合成為“集(set)”.其中,HashSet<T> 集合包含不重復(fù)元素的無(wú)序列表;SortedSet<T> 集合包含不重復(fù)元素的有序列表。 |
| LinkedList<T> | 雙向鏈表 |
| Dictionary<TKey, TValue> | 字典,允許按照某個(gè)鍵來(lái)訪問(wèn)元素。字典也稱為映射或散列表。字典的主要特征是能根據(jù)鍵快速查找值。也可以自由添加和刪除元素,這有點(diǎn) List<T> 類(lèi),但沒(méi)有在內(nèi)存中移動(dòng)后續(xù)元素的性能開(kāi)銷(xiāo)。 |
| SortedDictionary<TKey, TValue> | 有序字典,是一個(gè)二叉搜索樹(shù),其中的元素根據(jù)鍵來(lái)排序。該鍵類(lèi)型必須實(shí)現(xiàn) IComparable<TKey> 接口。 |
| SortedList<TKey, TValue> | 有序鏈表,該類(lèi)按照鍵給元素排序。 |
線程安全集合
下表列出了 System.Collections.Concurrent 命名空間中的集合類(lèi)型。
| 類(lèi)型 | 說(shuō)明 |
|---|---|
| BlockingCollection<T> | 為實(shí)現(xiàn) IProducerConsumerCollection<T> 的所有類(lèi)型提供限制和阻止功能。 有關(guān)詳細(xì)信息,請(qǐng)參閱 BlockingCollection 概述。 |
| ConcurrentDictionary<TKey,TValue> | 鍵值對(duì)字典的線程安全實(shí)現(xiàn)。 |
| ConcurrentQueue<T> | FIFO(先進(jìn)先出)隊(duì)列的線程安全實(shí)現(xiàn)。 |
| ConcurrentStack<T> | LIFO(后進(jìn)先出)堆棧的線程安全實(shí)現(xiàn)。 |
| ConcurrentBag<T> | 無(wú)序元素集合的線程安全實(shí)現(xiàn)。 |
| IProducerConsumerCollection<T> | 類(lèi)型必須實(shí)現(xiàn)以在 BlockingCollection 中使用的接口。 |