asp.net c#中[],List,Array,ArrayList的區別

來源:互聯網
上載者:User

asp教程.net c#中[],List,Array,ArrayList的區別

[] 是針對特定類型、固定長度的。

List 是針對特定類型、任意長度的。

List 類是 ArrayList 類的泛型等效類,某些情況下,用它比用數組和 ArrayList 都方便。

我們假設有一組資料,其中每一項資料都是一個結構。

public struct Item
{
    public int Id;
    public string DisplayText;
}
注意結構是不能給執行個體欄位賦值的,即 public int Id = 1 是錯誤的。

using System.Collections.Generic;

List<Item> items = new List<Item>();

//添加
Item item1 = new Item();
item1.Id = 0;
item1.DisplayText = "水星";
items.Add(item1);

//添加
Item item2 = new Item();
item2.Id = 1;
item2.DisplayText = "地球";
items.Add(item2);

//修改
//這裡使用的是結構,故不能直接用 items[1].DisplayText = "金星";,如果 Item 是類,則可以直接用。為什麼呢?因為結構是按值傳遞的。

Item item = items[1];
item.DisplayText = "金星";
items[1] = item;

 

Array 是針對任意類型、固定長度的。

 private void Change(Array array)
    {
        for (int i = 0; i < array.Length; i++) // 使用 Length
        {
            array.SetValue((int)array.GetValue(i) * 2, i); // 需要類型轉換
        }
    }

ArrayList 是針對任意類型、任意長度的。


和數組不同,ArrayList 的各個元素的類型可以不同。

聲明對象

//聲明 ArrayList 有三種重載方法,較常用的有兩種
ArrayList al = new ArrayList();
ArrayList al = new ArrayList(3);
上例中,參數值 3 表示容量,即可以容納多少個元素


Array 和 ArrayList 是通過儲存 object 實現任意類型的,所以使用時要轉換。

聯繫我們

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