2009年11月30日 星期一

C#-ArrayList與Array之間的互換

ArrayList可以動態的增加元素,所以有時候在不知道數量的情形下,相當的好用。
但是某些視窗元件卻只支援Array,而且Array的執行速度也比較快。
所以常常會有兩個互相轉換的需求,
下面記錄了兩個之間互換的方法。


  1. Array轉換成ArrayList
    這個有兩種方法:

    1. 使用建構子具有ICollection介面的版本:
    2. 使用靜態方法Adapter,該方法具有IList介面:

  2. ArrayList轉換成Array
    直接用ArrayList.ToArray即可

直接看程式碼吧!

static void Main(string[] args)
{
    // Array轉換成ArrayList
    int[] a = { 1, 2, 3, 4, 5, 6 };

    // 1) 使用ArrayList建構子中,實作ICollection的方法
    ArrayList arr1 = new ArrayList(a);

    foreach (int i in arr1)
    {
        Console.WriteLine(i);
    }

    // 2) 使用ArrayList的靜態方法Adapter,實作IList的方法
    ArrayList arr2 = ArrayList.Adapter(a);

    foreach (int i in arr2)
    {
        Console.WriteLine(i);
    }

    // ArrayList轉換成Array
    // 使用ToArray方法
    int[] b = (int[])arr1.ToArray(typeof(int));
    //int[] b = (int[])arr1.ToArray(Type.GetType("System.Int32"));

    foreach (int i in b)
    {
        Console.WriteLine(i);
    }
}

範例程式下載:

沒有留言:

張貼留言