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.

È stato utile?

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
scroll top