System.Collections 命名空間

集合就如同陣列,用來儲存與管理一群特定型態的資料物件,而除了基本的資料處理功能,集合直接提供了各種資料結構與演算法的實作,像是佇列、鏈結串列、排序等等,可以讓你輕易的完成複雜的資料操作。

命名空間 System.Collection 提供各種類型集合的規格介面與實作類別,本章將從其中最基礎的 ICollection 介面開始,陸續介紹這些集合類別與介面的實際運用與操作。

集合本身也是一種型別,用來作為儲存資料物件的容器,集合同樣被實作成物件,而儲存在集合當中的資料物件則被稱為集合元素。

System.Collections 命名空間,提供一組支援集合運算的介面,了解這些介面,對於學習如何運用集合非常重要,以下列舉介面之間的關聯架構圖:



第一層的三個實體方塊為主要的基礎介面為,其他的類別或介面,均直接或間接繼承與實作這些介面, IEnumerable 以及 IEnumerator 介面定義列舉集合成員的方法,而 IComparer 介面則定義集合物件的比較運算方法。

接下來第二層的兩個空白方塊, ICollection 繼承 IEnumerable ,提供最基本的集合類別功能定義, System.Collections 命名空間裏的大部份介面與類別,均繼承了這兩個介面,IDictionaryEnumerator 介面則繼承 IEnumerator,提供「鍵/值(key/value)」形式的列舉功能定義。

第三層包含了兩個介面: IList 與 IDictionary ,這兩個介面同時實作了 ICollection 與IEnumerable 這兩個介面, IList 定義了索引存取元素的方法, IDictionary 則是提供key/value 形式的元素存取方法。

架構圖中包含了兩條虛線,上方的虛線表示 IEnumerator 介面的實作類別,必須由引用 IEnumerable 所定義的方法成員所取得,下方的虛線則表示 IDictionaryEnumerator 實作物件必須由引用 IDictionary 所定義的方法成員取得,相關的細節,稍後的課程將有詳細而完整的說明。

IEnumerable以及IEnumerator介面

要了解 .NET 對於集合所提供的支援,首先必須從IEnumerable以及IEnumerator這兩個介面開始,它們提供列舉集合物件的基礎功能,其中 IEnumerator 是所有列舉器的基礎介面,定義列舉集合元素所需的方法成員。

IEnumerator 由 IEnumerable 介面所定義的方法 GetEnumerator 所取得,這也是IEnumerable 介面唯一的方法成員。

ICollection介面

ICollection 介面是所有集合的基礎介面,繼承 IEnumerable 介面,擁有最基礎的集合列舉功能,同時定義了集合所需的共同方法以及成員屬性,為整個集合架構裏的核心介面,其他的集合均繼承了此介面,並且實作其定義的相關成員,提供特定類型集合所需的功能。

IList與IDictionary介面

IList與IDictionary介面直接繼承了ICollection介面以及IEnumerable兩個主要的基礎介面,除了繼承這兩個介面所定義的方法成員,同時包含了自身需提供的專屬方法成員,IList主要的功能,在於提供類似陣列結構,以索引存取集合元素的操作,IDictionary介面則支援以key/value形式,對集合元素作存取。

IDictionaryEnumerator介面

這個介面繼承 IEnumerator ,是一種「鍵 / 值」形式的列舉器,提供的列舉集合介面,就如同其 IEnumerator ,而 IDictionaryEnumerator 的實作類別,是由 IDictionary 介面的GetEnumerator 方法取得。

IComparer介面

提供集合物件進行比較運算所需的方法成員定義。





沒有留言: