IEnumerable IListIList,ICollection,IEnumerable

 

祖宗: IEnumerable

此接口只有一個方法 GetEnumerator();

是FrameWork爲了實現迭代器模式設計的接口。所有繼承了IEnumerable的類,要使用foreach迭代器時,就需要使用該方法。因此也只有實現了該接口的類纔可以使用foreach。

ICollection繼承自IEnumerable,IList繼承自ICollection

這兩個接口都是爲了給集合提供一些公用的方法。只是分了兩個層次,IList比ICollection多幾個方法,增加,移除成員。可以簡單理解爲:ICollection主要針對靜態集合;IList主要針對動態集合

IListIList,ICollection,IEnumerable在命名空間System.Collections中。

IList<T>,ICollection<T>,IEnumerable<T>。在System.Collections.Generic 命名空間中。

IList<T>,ICollection<T>,IEnumerable<T>。是2.0引入泛型以後新增的。主要是提高重用性與類型安全。

IEnumerable<T>繼承自IEnumerable

ICollection<T>繼承自IEnumerable<T>

IList<T>繼承自ICollection<T>

因此可以完全使用泛型接口,而放棄使用ICollection和IList。泛型接口提供了更好的類型安全和編譯時的檢驗。

補充:

IEnumerable<T>和IEnumerable都只有一個方法。

ICollection<T>和ICollection的結構是不一樣的。ICollection<T>比ICollection多幾個方法。它包含了幾個IList中的幾個方法。也許是對以前的改進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章