C# IEnumerable、IEnumerator、List、ArrayList、[]數組各各的區別

來源:互聯網
上載者:User

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介面。
interface IEnumberator
{
object Current{get;}
bool MoveNext();
void Reset();
}
在程式中拼湊sql時,可以這樣使用List <T>
List <SqlParameter> list=new List <SqlParameter>();
list.Add(new SqlParameter("參數名","參數值"));
...
SqlParameter[] para=list.ToArray();
...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.