Array與ArrayList

來源:互聯網
上載者:User

1. Array

public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable

{

//////////////////

}

Array:長度是不變的(定長),裡面的資料元素是同類型的,可以說Array是同一種資料類型的集合

eg:

Int32[] array = new Int32[5];

Int32[] array = new Int32[] { 2, 3, 4 };//會根據初始化器中資料元素個數來確定該數組的大小

 

2. ArrayList

public class ArrayList : IList, ICollection, IEnumerable, ICloneable

{

//////////////

}

長度是可以動態改變的,裡面的資料元素可以是不同類型(實值型別、參考型別),可以說ArrayList 可以是多種資料類型的集合

 ArrayList arrlist = new ArrayList();

//通過下面這兩個方法添加/刪除元素,動態改變長度,這兩個方法的參數都是object類型,如果向其傳入的參數是實值型別(ValueType)的話,會發生裝箱(boxing)操作,運行比較慢,有損效能,

eg:

public virtual int Add(object value);  

public virtual void Remove(object obj);

 

3. List<T>

public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

{

//////////////

}

是ArrayList類的泛型等效類並增強了功能,通過以下兩個方法添加/刪除元素,動態改變長度,這兩個方法的參數都是泛型型別,不會發生裝箱(boxing)操作,所以List<T>在.NET 2.0以上可以完全代替ArrayList,且應該多用List<T>

eg: 

public void Add(T item);

public bool Remove(T item);

----------另外,繼承自IEnumberable介面(或IEnumerable <T>泛型介面)的類型都是可枚舉的,也就是可以用foreach來遍曆集合中的每一個元素

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.