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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top