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
的方法。
相关文章
- 站长推荐