欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解析C#中[],List,Array,ArrayList的區(qū)別及應(yīng)用

 更新時(shí)間:2014年01月20日 09:58:09   作者:  
本篇文章主要是對(duì)C#中[],List,Array,ArrayList的區(qū)別及應(yīng)用進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助

[] 是針對(duì)特定類型、固定長(zhǎng)度的。

List 是針對(duì)特定類型、任意長(zhǎng)度的。

Array 是針對(duì)任意類型、固定長(zhǎng)度的。

ArrayList 是針對(duì)任意類型、任意長(zhǎng)度的。

Array 和 ArrayList 是通過存儲(chǔ) object 實(shí)現(xiàn)任意類型的,所以使用時(shí)要轉(zhuǎn)換。

應(yīng)用示例

復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // System.Int32 是結(jié)構(gòu)
        int[] arr = new int[] { 1, 2, 3 };
        Response.Write(arr[0]); // 1
        Change(arr);
        Response.Write(arr[0]); // 2

        // List 的命名空間是 System.Collections.Generic
        List<int> list = new List<int>();
        list.Add(1);
        list.Add(2);
        list.Add(3);
        Response.Write(list[0]); // 1
        Change(list);
        Response.Write(list[0]); // 2

        // Array 的命名空間是 System
        Array array = Array.CreateInstance(System.Type.GetType("System.Int32"), 3); // Array 是抽象類,不能使用 new Array 創(chuàng)建。
        array.SetValue(1, 0);
        array.SetValue(2, 1);
        array.SetValue(3, 2);
        Response.Write(array.GetValue(0)); // 1
        Change(array);
        Response.Write(array.GetValue(0)); // 2

        // ArrayList 的命名空間是 System.Collections
        ArrayList arrayList = new ArrayList(3);
        arrayList.Add(1);
        arrayList.Add(2);
        arrayList.Add(3);
        Response.Write(arrayList[0]); // 1
        Change(arrayList);
        Response.Write(arrayList[0]); // 2
    }

    private void Change(int[] arr)
    {
        for (int i = 0; i < arr.Length; i++)
        {
            arr[i] *= 2;
        }
    }

    private void Change(List<int> list)
    {
        for (int i = 0; i < list.Count; i++) // 使用 Count
        {
            list[i] *= 2;
        }
    }


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

    private void Change(ArrayList arrayList)
    {
        for (int i = 0; i < arrayList.Count; i++) // 使用 Count
        {
            arrayList[i] = (int)arrayList[i] * 2; // 需要類型轉(zhuǎn)換
        }
    }
}


另外。

把一個(gè)對(duì)象數(shù)組轉(zhuǎn)換成ArrayList可以使用ArrayList.Adapter方法。這個(gè)方法把一個(gè)IList包裹在一個(gè)ArrayLIst里。

Person[] personArray = myPerson.GetPersons();
ArrayList personList = ArrayList.Adapter(personArray);

把一個(gè)ArrayList轉(zhuǎn)換成對(duì)象數(shù)組可以使用ArrayList.ToArray方法。

Person[] personArrayFromList = (Person[])personList.ToArray(typeof(Person));

不要忘了在調(diào)用ArrayList.ToArray方法之前進(jìn)行強(qiáng)制類型轉(zhuǎn)換,否則在編譯的時(shí)候會(huì)出錯(cuò)提示你不能把一個(gè)ArrayList轉(zhuǎn)換成Person對(duì)象數(shù)組。

相關(guān)文章

  • C#編寫網(wǎng)游客戶端的實(shí)現(xiàn)

    C#編寫網(wǎng)游客戶端的實(shí)現(xiàn)

    本文主要介紹了C#編寫網(wǎng)游客戶端,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法

    C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法

    這篇文章主要介紹了C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法,涉及C#中SendMessage方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • c#?COM組件原理詳解

    c#?COM組件原理詳解

    本文主要介紹了c#?COM組件原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • C#簡(jiǎn)單判斷字符編碼的方法

    C#簡(jiǎn)單判斷字符編碼的方法

    這篇文章主要介紹了C#簡(jiǎn)單判斷字符編碼的方法,可實(shí)現(xiàn)判斷utf-8,unicode,ansi等編碼的功能,簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2016-06-06
  • c#數(shù)據(jù)庫(kù)與TXT導(dǎo)入導(dǎo)出的實(shí)例

    c#數(shù)據(jù)庫(kù)與TXT導(dǎo)入導(dǎo)出的實(shí)例

    最近剛學(xué)完ADO.NET,做了個(gè)數(shù)據(jù)導(dǎo)入導(dǎo)出的題目,是將txt中的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),然后將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到txt中,這里說的數(shù)據(jù)的格式是“tom|23”,tom指名字,23指年齡。廢話也不多說了,大家直接看代碼。
    2013-04-04
  • c#創(chuàng)建windows服務(wù)(Windows Services)詳細(xì)步驟

    c#創(chuàng)建windows服務(wù)(Windows Services)詳細(xì)步驟

    這篇文章主要介紹了c#創(chuàng)建windows服務(wù)(Windows Services)詳細(xì)步驟,大家參考使用吧
    2013-12-12
  • Win10下C# DateTime出現(xiàn)星期幾問題的解決方法

    Win10下C# DateTime出現(xiàn)星期幾問題的解決方法

    這篇文章主要介紹了Win10下C# DateTime出現(xiàn)星期幾問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C#中SerialPort的使用教程詳解

    C#中SerialPort的使用教程詳解

    SerilPort是串口進(jìn)行數(shù)據(jù)通信的一個(gè)控件,這篇文章主要為大家詳細(xì)介紹了C#中SerialPort的使用,具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 基于C#實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)抽獎(jiǎng)小程序

    基于C#實(shí)現(xiàn)簡(jiǎn)單的隨機(jī)抽獎(jiǎng)小程序

    臨近春節(jié),大街小巷的地方都有抽獎(jiǎng)活動(dòng),那么基于C#是如何實(shí)現(xiàn)簡(jiǎn)單的抽獎(jiǎng)程序的呢,下面小編給大家分享了具體代碼,有需要的朋友參考下
    2016-01-01
  • Unity中的RegisterPlugins實(shí)用案例深入解析

    Unity中的RegisterPlugins實(shí)用案例深入解析

    這篇文章主要為大家介紹了Unity中的RegisterPlugins實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評(píng)論