web-dev-qa-db-fra.com

Conversion de la liste <T> en tableau T []

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;
}
67
tehvan

Essayez d'utiliser

MyClass[] myArray = list.ToArray();
130
Nikos Steiakakis
List<int> list = new List<int>();
int[] intList = list.ToArray();

est-ce votre solution?

15
Sessiz Saat

Utilisez ToArray() sur List<T>.

8
Brian Rasmussen
list.ToArray()

Fera le tric. Voir ici pour plus de détails.

8
Bas Bossink

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

selon les documents

Les éléments sont copiés à l'aide de Array.Copy(), qui est une opération O(n), où n est Count.

0
Nipuna

Pour aller deux fois plus vite en utilisant plusieurs cœurs de processeur, le package de nuget HPCsharp fournit:

list.ToArrayPar();
0
DragonSpit