Convertir una lista de enlaces < T > a una matriz de T
Pregunta
¿Cuál es la forma más fácil de convertir una BindingList < T >
en una T []
?
EDITAR: Estoy en 3.0 para este proyecto, por lo que no LINQ.
Solución
Bueno, si tiene LINQ (C # 3.0 + .NET 3.5 o LINQBridge ) puede usar .ToArray ()
; de lo contrario, simplemente cree una matriz y copie los datos.
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
Otros consejos
En .Net 2, debe utilizar el método .CopyTo ()
en su BindingList<T>
He cambiado esta publicación desde que noté que etiquetaste esto con .net2.0. Podría usar una Lista ya que tiene un método 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: esta es, de hecho, una solución menos eficiente que la solución CopyTo que otros miembros han mostrado. En su lugar, use su solución, esta crea dos matrices, el resultado y una interna a la instancia de la Lista.