📜  C#|如何将ArrayList转换为Array(1)

📅  最后修改于: 2023-12-03 15:14:28.635000             🧑  作者: Mango

C#-如何将ArrayList转换为Array

在C#中,ArrayList是一种动态数组,它可以帮助我们在运行时动态地添加或移除元素。但在某些情况下,我们可能需要将ArrayList转换为Array,以便对它们进行更加高效的处理。下面我们来介绍一下如何在C#中将ArrayList转换为Array。

方法一:使用ToArrary()方法

在C#中,ArrayList和Array之间的转换可以通过ArrayList的ToArray()方法来完成,该方法将ArrayList转换为和其元素类型相同的Array。下面是一个示例:

ArrayList arrayList = new ArrayList();
arrayList.Add("string 1");
arrayList.Add("string 2");
arrayList.Add("string 3");
arrayList.Add(4);
arrayList.Add(true);
string[] stringArray = (string[])arrayList.ToArray(typeof(string));

在这个示例中,我们首先定义了一个ArrayList,然后添加了一些字符串、整数和布尔值。最后,我们使用ToArray()方法将ArrayList转换为一个字符串数组,结果为:string[] stringArray = {"string 1", "string 2", "string 3"}

方法二:使用LINQ查询语句

另一种将ArrayList转换为Array的方式是使用LINQ查询语句。具体来说,我们可以先使用Cast()方法将ArrayList转换成一个IEnumerable集合,然后使用LINQ查询操作将其转换为需要的Array。下面是一个示例:

ArrayList arrayList = new ArrayList();
arrayList.Add("string 1");
arrayList.Add("string 2");
arrayList.Add("string 3");
arrayList.Add(4);
arrayList.Add(true);
string[] stringArray = arrayList.Cast<string>().ToArray();

与前面的示例相比,这里我们使用了Cast()方法将ArrayList转换为一个IEnumerable集合,然后直接将其转换为一个字符串数组。结果与之前相同。

方法三:使用循环遍历

最后一种将ArrayList转换为Array的方法是使用循环遍历。具体来说,我们可以通过循环访问ArrayList中的每个元素,并将其添加至对应的Array中。下面是一个示例:

ArrayList arrayList = new ArrayList();
arrayList.Add("string 1");
arrayList.Add("string 2");
arrayList.Add("string 3");
arrayList.Add(4);
arrayList.Add(true);
string[] stringArray = new string[arrayList.Count];
for (int i = 0; i < arrayList.Count; i++) 
{
    stringArray[i] = (string)arrayList[i];
}

在这个示例中,我们首先定义了一个string类型的Array,大小为ArrayList中元素的数量。然后,我们通过循环访问ArrayList中的每个元素,并将其转换为string类型后,放入对应的Array中。结果和之前的示例相同。

总结一下,以上是三种在C#中将ArrayList转换为Array的方式。根据实际情况进行选择,使用ToArray()方法效率最高,使用LINQ查询语句需要额外的引用System.Linq命名空间,使用循环遍历最为基础,根据情况选择最为合适。