C# ArrayList - ToArray() 方法

C# ArrayList 的 ToArray() 方法用于将 ArrayList 中的元素复制到一个新的数组对象中。它还可以创建指定元素类型的新数组。此方法允许我们以数组格式处理数据,这可能更适合某些特定情况。

语法

以下是 C# ArrayList 的语法: ToArray() 方法 -

public virtual Array ToArray();
public virtual Array ToArray (Type type);

参数

此方法接受单个参数 -

  • type:指定返回数组中元素的所需类型。

返回值

此方法返回一个包含指定元素类型的数组,其中包含 ArrayList 元素的副本。

示例 1:将整个 ArrayList 转换为 ToArray

以下是使用 ToArray() 方法将 ArrayList 转换为 Array 对象的基本示例 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 10, "Hello", 3.4, "tutorialspoint"};
      object[] array = list.ToArray();
      Console.WriteLine("Array Elements:");
      foreach (var item in array)
      {
         Console.WriteLine(item);
      }
   }
}

输出

以下是输出 -

Array Elements:
10
Hello
3.4
tutorialspoint

示例 2:将 ArrayList 转换为整数数组

以下示例创建一个包含整数元素的 ArrayList。然后,我们使用 ToArray() 方法将 ArrayList 转换为整数数组 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 1, 2, 3 };
      // 转换为 int 数组
      int[] intArray = (int[])list.ToArray(typeof(int));
      Console.WriteLine("Integer Array Elements:");
      foreach (var item in intArray)
      {
         Console.WriteLine(item);
      }
   }
}

输出

以下是输出 -

Integer Array Elements:
1
2
3

示例 3:将 ArrayList 转换为字符串数组

在此示例中,我们使用 ToArray() 方法将 ArrayList 转换为字符串数组对象 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { "Aman", "Rahhul", "Akash", "Vivek"};
      // 转换为 int 数组
      string[] strArray = (string[])list.ToArray(typeof(string));
      Console.WriteLine("String Array Elements:");
      foreach (var item in strArray)
      {
         Console.WriteLine(item);
      }
   }
}

输出

以下是输出 -

String Array Elements:
Aman
Rahhul
Akash
Vivek

示例 4:如果 ArrayList 包含不同类型的元素

在下面的示例中,此方法抛出"InvalidCastException"。如果源 ArrayList 包含不同类型的元素,则无法自动转换为指定类型 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { "Aman", 'A', "Rahhul", 'R', "Akash", "Vivek", 'v'};
      // 转换为 int 数组
      string[] strArray = (string[])list.ToArray(typeof(string));
      Console.WriteLine("String Array Elements:");
      foreach (var item in strArray)
      {
         Console.WriteLine(item);
      }
   }
}

输出

以下是输出 -

Unhandled Exception:
System.InvalidCastException

csharp_arraylist.html