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();