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


73

是否有将强类型的一小段路List<T>到同类型的数组,例如:List<MyClass>MyClass[]

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

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

Answers:






0

您可以简单地使用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();

根据Docs

使用Array.Copy(),将元素复制,这是O(n)运算,其中n是Count。


-1

通过使用多个处理器内核,HPCsharp nuget软件包的运行速度可提高两倍:

list.ToArrayPar();

-1

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

list.AsParallel().ToArray();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.