Existe-t-il un moyen rapide de convertir un _ fortement typé List<T>
vers un tableau du même type, par exemple: List<MyClass>
à MyClass[]
?
En bref, je veux dire un appel de méthode, ou au moins plus court que:
MyClass[] myArray = new MyClass[list.Count];
int i = 0;
foreach (MyClass myClass in list)
{
myArray[i++] = myClass;
}
Essayez d'utiliser
MyClass[] myArray = list.ToArray();
List<int> list = new List<int>();
int[] intList = list.ToArray();
est-ce votre solution?
Utilisez ToArray()
sur List<T>
.
list.ToArray()
Fera le tric. Voir ici pour plus de détails.
Vous pouvez simplement utiliser la méthode d'extension ToArray()
Exemple:
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();
Les éléments sont copiés à l'aide de
Array.Copy()
, qui est une opération O(n), où n est Count.
Pour aller deux fois plus vite en utilisant plusieurs cœurs de processeur, le package de nuget HPCsharp fournit:
list.ToArrayPar();