Converti una BindingList < T > a una matrice di T
Domanda
Qual è il modo più semplice per convertire un BindingList < T >
in un T []
?
EDIT: sono su 3.0 per questo progetto, quindi nessun LINQ.
Soluzione
Bene, se hai LINQ (C # 3.0 + .NET 3.5 o LINQBridge ) puoi usare .ToArray ()
- altrimenti, basta creare un array e copiare i dati.
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
Altri suggerimenti
In .Net 2 devi usare il metodo .CopyTo ()
sul tuo BindingList<T>
Ho cambiato questo post da quando ho notato che l'hai taggato con .net2.0. È possibile utilizzare un elenco poiché ha un metodo ToArray ().
public T[] ToArray<T>(BindingList<T> bindingList) {
if (bindingList == null)
return new T[0];
var list = new List<T>(bindingList);
return list.ToArray();
}
Nota: questa è davvero una soluzione meno performante della soluzione CopyTo mostrata dagli altri membri. Usa invece la loro soluzione, questa crea due array, il risultato e uno interno all'istanza List.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow