C#包括存儲(chǔ)一系列值或?qū)ο蟮膶iT類,這些類稱為集合。
C#中有兩種可用的集合類型:非泛型集合和泛型集合。
System.Collections 命名空間包含非泛型集合類型 和 System.Collections.Generic 命名空間包括泛型集合類型。
在大多數(shù)情況下,建議使用泛型集合,因?yàn)樗鼈儽确欠盒图蠄?zhí)行得更快,并且還通過(guò)給出編譯時(shí)錯(cuò)誤來(lái)最大程度地減少異常。
C#在System.Collections.Generic名稱空間中包含以下泛型集合類。
泛型集合 | 描述 |
---|---|
List<T> | 泛型 List<T> 包含指定類型的元素。當(dāng)你在其中添加元素時(shí),它會(huì)自動(dòng)增長(zhǎng)。 |
Dictionary<TKey,TValue> | Dictionary<TKey,TValue> 包含鍵值對(duì)。 |
SortedList<TKey,TValue> | SortedList 存儲(chǔ)鍵和值對(duì)。默認(rèn)情況下,它自動(dòng)按鍵的升序添加元素。 |
Queue<T> | Queue<T> 以FIFO樣式(先進(jìn)先出)存儲(chǔ)值。它保持值的添加順序。它提供了一個(gè) Enqueue() 方法來(lái)添加值,以及一個(gè)Dequeue()方法來(lái)從集合中檢索值。 |
Stack<T> | Stack<T> 將值存儲(chǔ)為后進(jìn)先出(LIFO)。它提供了一個(gè)Push()方法來(lái)添加值,以及Pop()和Peek()方法來(lái)檢索值。 |
Hashset<T> | Hashset<T> 包含不重復(fù)的元素。它消除了重復(fù)的元素。 |
非泛型集合 | 用法 |
---|---|
ArrayList | ArrayList存儲(chǔ)任何類型的對(duì)象,如數(shù)組。但是,不需要像數(shù)組一樣指定ArrayList的大小,因?yàn)樗鼤?huì)自動(dòng)增長(zhǎng)。 |
SortedList | SortedList 存儲(chǔ)鍵和值對(duì)。默認(rèn)情況下,它按照鍵的升序自動(dòng)排列元素。C # 包括泛型和非泛型 SortedList 集合。 |
Stack | Stack以后進(jìn)先出的方式存儲(chǔ)這些值。它提供了一個(gè)Push()方法來(lái)添加值,以及Pop()和Peek()方法來(lái)檢索值。C#既包括泛型棧,也包括非泛型棧。 |
Queue | Queue以先進(jìn)先出(FIFO)的方式存儲(chǔ)值。它保持添加值的順序。它提供了一個(gè)Enqueue()方法來(lái)添加值,以及一個(gè)Dequeue()方法來(lái)從集合中檢索值。c#包括泛型和非泛型隊(duì)列。 |
Hashtable | Hashtable存儲(chǔ)鍵和值對(duì)。它通過(guò)比較鍵的散列值來(lái)檢索值。 |
BitArray | BitArray 管理一個(gè)緊湊的位值數(shù)組,這些值用布爾值表示,其中true表示位為on(1),false表示位為off。 |
接下來(lái)章節(jié),讓我們看看每種類型的集合。