3种方法C# Array转换为List,List转换为Array
作者:admin 时间:2023-5-12 23:3:30 浏览:这篇文章将讨论如何在 C# 中将数组Array转换为List。
1、使用Enumerable.ToList()方法
最简单的解决方案是从System.Linq命名空间调用Enumerable.ToList()方法,该方法从IEnumerable<T>创建List<T>,它返回一个包含输入序列元素的List<T>。
using System;
using System.Collections.Generic;
using System.Linq;
public class Example
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = array.ToList();
// List<int> list = array.OfType<int>().ToList();
// List<int> list = array.Cast<int>().ToList();
Console.WriteLine(String.Join(",", list));
}
}
/*
输出: 1,2,3,4,5
*/
2、使用列表构造器
我们还可以使用List<T>的构造函数,它接受IEnumerable<T>作为一个参数并初始化List<T>类的一个新实例,List<T>类包含从指定集合复制的元素。
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = new List<int>(array);
Console.WriteLine(String.Join(",", list));
}
}
/*
输出: 1,2,3,4,5
*/
3、使用List.AddRange()方法
最后,我们可以调用AddRange()方法,该方法将指定的集合元素添加到 List 的末尾。
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
int[] array = { 1, 2, 3, 4, 5 };
List<int> list = new List<int>();
list.AddRange(array);
Console.WriteLine(String.Join(",", list));
}
}
/*
输出: 1,2,3,4,5
*/
在上面的代码示例中,我们没有将 Array 转换为 List,而是使用 List 上的.AddRange() 方法将 Array 的元素附加到 List。
我们创建一个新List,并使用 IList 上的 .AddRange 方法将集合添加到现有List中。
正如我们所知,Array 实现了 ICollection,我们可以将 Array 添加到 AddRange 方法并将项目附加到现有 List。
如何将List转换为Array
System.Collections.Generic命名空间中的List<T>类提供方法ToArray(),可用于将 List 转换为 Array。
句法
public T[] ToArray();
此方法复制 List 的项目到一个新数组并将该数组返回给调用者。
- 此方法在内部使用
Array.Copy()方法将列表元素复制到新数组。 - 由于它复制了所有元素,因此该方法的时间复杂度为
O(n),其中n是元素的数量。
在下面的代码示例中,我们创建了一个整数列表,并使用ToArray()方法将其转换为整数数组。我们已经使用Array.ForEach()方法打印了数组内容。
同样的操作也适用于字符串列表。
该程序打印以下输出。
1
2
3
4
5
January
February
March
April
代码
using System;
using System.Collections.Generic;
namespace Hello
{
class ToArrayTest
{
static void Main(string[] args)
{
var numList = new List<int> { 1, 2, 3, 4, 5 };
int[] numArray = numList.ToArray();
Array.ForEach(numArray, Console.WriteLine);
var monthList = new List<string> { "January", "February", "March", "April" };
string[] monthArray = monthList.ToArray();
Array.ForEach(monthArray, Console.WriteLine);
}
}
}
总结
这就是关于在 C# 中将数组Array转换为List的3种方法,第一种方法比较简单,而其他方法也同样可以达到目的。此外,也介绍了List转为Array的方法。
相关文章



