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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top