Convertir une liste de liens < T > à un tableau de T
Question
Quel est le moyen le plus simple de convertir un BindingList < T >
en un T []
?
EDIT: je suis sur la version 3.0 pour ce projet, donc pas de LINQ.
La solution
Eh bien, si vous avez LINQ (C # 3.0 + .NET 3.5 ou LINQBridge ) vous pouvez utiliser .ToArray ()
- sinon, créez simplement un tableau et copiez les données.
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
Autres conseils
Dans .Net 2, vous devez utiliser la méthode .CopyTo ()
sur votre BindingList < T >
J'ai changé ce post depuis que j'ai remarqué que vous l'aviez étiquetée avec .net2.0. Vous pouvez utiliser une liste car elle possède une méthode ToArray ().
public T[] ToArray<T>(BindingList<T> bindingList) {
if (bindingList == null)
return new T[0];
var list = new List<T>(bindingList);
return list.ToArray();
}
Remarque: il s'agit en effet d'une solution moins performante que la solution CopyTo présentée par d'autres membres. Utilisez leur solution à la place, celle-ci crée deux tableaux, le résultat et un interne à l'instance de liste.