从 List < T > 到数组 T []的转换

有没有一种简单的方法可以将强类型的 List<T>转换为相同类型的 Array,例如: List<MyClass>转换为 MyClass[]

简而言之,我指的是一个方法调用,或者至少短于:

MyClass[] myArray = new MyClass[list.Count];
int i = 0;
foreach (MyClass myClass in list)
{
myArray[i++] = myClass;
}
159803 次浏览

尝试使用

MyClass[] myArray = list.ToArray();

List<T>上使用 ToArray()

List<int> list = new List<int>();
int[] intList = list.ToArray();

这是你的解决办法吗?

list.ToArray()

会做的 tric。见 给你的细节。

您可以简单地使用 ToArray()扩展方法

例如:

Person p1 = new Person() { Name = "Person 1", Age = 27 };
Person p2 = new Person() { Name = "Person 2", Age = 31 };


List<Person> people = new List<Person> { p1, p2 };


var array = people.ToArray();

医生说的

使用 Array.Copy()复制元素,这是一个 O (n)操作, 伯爵在哪里。

通过使用多处理器核心 HPCSharp 核心软件包提供两倍的速度:

list.ToArrayPar();

一个可以避免的解决方案是,使用多个 CPU 内核,并且预计运行速度会更快,但是执行速度会慢5倍左右:

list.AsParallel().ToArray();