📅  最后修改于: 2023-12-03 15:14:28.635000             🧑  作者: Mango
在C#中,ArrayList是一种动态数组,它可以帮助我们在运行时动态地添加或移除元素。但在某些情况下,我们可能需要将ArrayList转换为Array,以便对它们进行更加高效的处理。下面我们来介绍一下如何在C#中将ArrayList转换为Array。
在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"}
。
另一种将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命名空间,使用循环遍历最为基础,根据情况选择最为合适。