Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从列表转换<;T>;到数组T[]_C#_.net_Arrays_Linq_List - Fatal编程技术网

C# 从列表转换<;T>;到数组T[]

C# 从列表转换<;T>;到数组T[],c#,.net,arrays,linq,list,C#,.net,Arrays,Linq,List,有没有一种简单的方法可以将强类型的列表转换为相同类型的数组,例如:列表到MyClass[] 简而言之,我指的是一个方法调用,或至少短于: MyClass[] myArray = new MyClass[list.Count]; int i = 0; foreach (MyClass myClass in list) { myArray[i++] = myClass; } 试用 MyClass[] myArray = list.ToArray(); 在列表上使用ToArray()列表=

有没有一种简单的方法可以将强类型的
列表
转换为相同类型的数组,例如:
列表
MyClass[]

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

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

MyClass[] myArray = list.ToArray();
列表上使用
ToArray()

列表=新列表();
int[]intList=list.ToArray();
这是你的解决方案吗

list.ToArray()

我会做的。有关详细信息,请参阅。

您可以简单地使用
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();
Person p1=newperson(){Name=“Person 1”,年龄=27};
人p2=新人(){Name=“人2”,年龄=31};
列表人员=新列表{p1,p2};
var数组=people.ToArray();

使用
Array.Copy()
复制元素,这是一种O(n)操作, 其中n是计数


HPCsharp nuget软件包提供了两倍于多处理器核的速度:

list.ToArrayPar();

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

list.AsParallel().ToArray();

这是一个肤浅的副本,对吗?不清楚…@rustyx是的,这是正确的。
list.AsParallel().ToArray();