標籤:io 使用 ar for 資料 sp cti on c
List <T>是ArrayList的泛型,ArrayList裡邊的資料類型是object,List <T>裡邊的是具體的某種類型。
ArrayList類似於向量,可以儲存不同的資料類型在一個數組裡邊(轉換為了object)。
一般使用的時候盡量使用List <T>,因為ArrayList存取都要進行一次轉換(裝箱、拆箱)。
[]類型的數組類似於List <T>,不同的是[]是定長的,而List <T>是長度可變的數組.
ICollection主要針對靜態集合;IList主要針對動態集合
IEnumerable <T>繼承自IEnumerable
ICollection <T>繼承自IEnumerable <T>
IList <T>繼承自ICollection <T>
IEnumerable介面
實現了IEnumerable介面的集合表明該集合能夠提供一個enumerator(列舉程式)對象,支援當前的遍曆集合。IEnumerable介面只有一個成員GetEnumerator()方法。
IList介面和ArrayList類的目的是實現動態數組,ArrayList是IList的一個實現。
IEnumerable表明對象是不確定類型的集合并支援簡單迭代,是不是定長根本不關心...
IEnumerable <T>表明對象是指定類型的集合并支援簡單迭代,是不是定長根本不關心...
ICollection是IEnumerable介面的派生介面,表明對象是不確定類型的集合并支援簡單迭代,而且定義了集合的大小、枚舉數和同步方法,這裡的大小是指可以是定長的也可以是不定長的...
IList是ICollection和IEnumerable的派生介面,表明對象是不確定類型的集合并支援簡單迭代,而且定義了集合的大小、枚舉數和同步方法,還可以按照索引單獨訪問,這裡的大小是指可以是定長的也可以是不定長的...
ArrayList類是IList介面的實現,表明對象是不確定類型的大小可按需動態增加的數組...
List <T>類是IList <T>介面的實現,是ArrayList類的泛型等效類並增強了功能,表明對象是可通過索引訪問的對象的強型別列表...在.NET 2.0以上可以完全代替ArrayList,就是說ArrayList已經被淘汰,而動態數組和鏈表在本質上是不同的...在.NET 2.0以上有雙向鏈表LinkedList <T>泛型類,它也是繼承自ICollection <T>,IEnumerable <T>,ICollection,IEnumerable...
能夠使用foreach遍曆的集合,必須繼承IEnumberable(或IEnumerable <T>泛型介面)介面。
IEnumberable介面只有一個方法:
IEnumerator GetEnumberator(){}//返回一個IEnumberator類型的對象,該對象實現System.Collection.IEnumerator介面。
C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]數組各各的區別