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