📜  C#|将ArrayList的元素复制到新数组

📅  最后修改于: 2021-05-29 19:48:32             🧑  作者: Mango

ArrayList.ToArray方法用于将ArrayList的元素复制到新数组。此方法在其重载列表中包含两个方法,如下所示:

  1. ToArray()
  2. ToArray(类型)

ToArray()

此方法用于将ArrayList的元素复制到新的Object数组使用Array.Copy复制元素,这是一个O(n)操作,其中n是Count。

句法:

public virtual object[] ToArray ();

返回值:该方法将返回一个Object数组,其中包含ArrayList元素的副本。

例子:

// C# program to illustrate ToArray() Method
using System;
using System.Collections;
  
class GFG {
      
    // Main Method
    public static void Main()
    {
          
        // Create and initalizing ArrayList
        ArrayList mylist = new ArrayList(5);
          
        mylist.Add("G");
        mylist.Add("E");
        mylist.Add("E");
        mylist.Add("K");
        mylist.Add("S");
  
          
        // Copy the data of Arraylist into 
        // the object Array Using ToArray()
        // method
        object[] str2 = mylist.ToArray();
          
        foreach(string i in str2)
        {
            Console.WriteLine(i);
        }
    }
}
输出:
G
E
E
K
S

ToArray(类型)

此方法用于将ArrayList的元素复制到指定元素类型的新数组。使用Array.Copy复制元素,这是一个O(n)操作,其中n是Count。

句法:

public virtual Array ToArray (Type t);

在此, t是要创建元素并将元素复制到的目标数组的元素类型。

返回值:该方法将返回指定元素类型的数组,其中包含ArrayList元素的副本。

例外:

  • 如果t的值为null,则此方法将提供ArgumentNullException
  • 如果无法将源ArrayList的类型强制转换为指定的类型,则此方法将提供InvalidCastException。

注意: ArrayList对象中的所有对象都将强制转换为type参数中指定的Type。

例子:

// C# program to illustrate ToArray(Type) Method
using System;
using System.Collections;
  
class GFG {
      
    // Main Method
    public static void Main()
    {
          
        // Create and initalize new array
        ArrayList mylist = new ArrayList(5);
        mylist.Add("G");
        mylist.Add("E");
        mylist.Add("E");
        mylist.Add("K");
        mylist.Add("S");
  
        // Copy the data of Arraylist into
        // the string Array Using 
        // ToArray(Type) method
        string[] str2 = (string[])mylist.ToArray(typeof(string));
  
        // Display the data of str2 string
        foreach(string i in str2)
        {
            Console.WriteLine(i);
        }
    }
}
输出:
G
E
E
K
S

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.arraylist.toarray?view=netframework-4.7.2