當前位置:成語大全網 - 書法字典 - 什麽是C#中的集合類

什麽是C#中的集合類

表示壹組對象的集合,可通過遍歷每個元素(尤其是使用foreach循環)來訪問這些對象。

壹個集合包括多個元素,即有壹個集合類對象和n個元素對象。

-

因為任何集合類都實現IEnumerable接口,所以任何集合類對象都有GetEnumerator()方法,該方法可以返回實現IEUMERATOR接口的對象。返回的IEUMERATOR對象既不是集合類對象,也不是集合的元素類對象,而是壹個獨立的類對象。通過這個對象,您可以遍歷集合類對象中的每個元素對象。

如果集合類是用戶定義的,用戶必須實現它的GetEnumerator()方法,否則不能使用循環。當然,這個自定義集合類對應的IEnumerator類(實現接口的類)也必須自定義。

例如,ArrayList集合類對應的IEnumerator是ArrayListEnumeratorSimple。

數組集合類對應的IEnumerator是SZArrayEnumerator。

(中沒有介紹這兩個類。Net框架類庫文檔(msdn)。)

-

在1。表示集合行為的接口有:

1)I集合

定義所有集合的大小、枚舉數和同步方法。從IEnumerable派生

它定義了集合類最基本的行為,所有的集合類都實現了這個接口(基接口)。

但是它的行為太基礎了:它主要是壹個Count屬性,所以單獨實現它沒有太大意義。

2)IEnumerable

公開支持對集合進行簡單叠代的枚舉數。

它只有壹個方法GetEnumerator(),該方法可以返回壹個IEnumerator接口,通過該接口可以遍歷集合。

基本上所有的集合類都實現了這個接口。

3)伊利斯特

IList實現是壹組可以按索引排序和訪問的值,它本身實現了ICollection和IEnumerable接口。

是所有列表的抽象基類。IList實現有三種類型:只讀、固定大小和可變大小。

4)字典

IDictionary實現是鍵/值對的集合,它本身實現ICollection和IEnumerable接口。

是鍵/值對集合的基接口。IDictionary實現有三種類型:只讀、固定大小和可變大小。

IDictionary可以稱為字典、映射或哈希表,它根據鍵(任何類型)訪問值。

-

2.集合類可以直接在2。系統。集合是:

1)數組列表

實現的接口:IList,ICollection,IEnumerable。

只要集合不被修改,ArrayList就可以安全地同時支持多個讀取器。

隨著元素被添加到ArrayList中,容量會根據需要通過重新分配自動增加(增加2倍)。

如果需要創建壹個對象的數組,但是無法提前知道數組的大小,可以使用ArrayList。

ArrayList將所有元素都作為object對象引用,所以在訪問ArrayList的元素時需要進行類型轉換。

優點:大小動態變化,靈活方便的插入和刪除元素,可排序。

缺點:插入時性能不如數組,且不是強類型。

2)BitArray

實現的接口:ICollection,IEnumerable。

管理位值的壓縮數組。

3)哈希表

實現的接口:IDictionary、ICollection、IEnumerable。

妳可以自由地在Hashtable中添加和刪除元素,有些元素類似於ArrayList,但是沒有那麽多的性能開銷。

4)排序列表

實現的接口:IDictionary、ICollection、IEnumerable。

SortedLIst兼顧了ArrayList和Hashtable的優點,可以按鍵值排序。

5)排隊

實現的接口:ICollection,IEnumerable。

Queque是壹個隊列,它先入先出地訪問每個元素。

您可以調用Queque對象的GetEnumerator()方法,讓IEnumerator對象遍歷隊列中的元素。

6)堆棧

實現的接口:ICollection,IEnumerable。

Stack是壹個棧,每個元素都是後進先出訪問的。

您可以調用Stack對象的GetEnumerator()方法,讓IEnumerator對象遍歷堆棧中的各個元素。

-

3.上述集合類都是通用集合類,接受的元素多為對象類型。當壹個物體被放入時,

創建集合後,原始類型信息會丟失,也就是說,這些通用集合類不是強類型的。

解決方案是使用強類型集合類。

系統下的CollectionBase、DictionaryBase、ReadOnlyCollectionBase類。集合命名空間。

系統下的壹些類。集合。專門的命名空間可以滿足要求,並可以直接使用或繼承。如果您認為某篇文章侵犯了您的權利或他人的權利,請聯系我們。