Converter um BindingList para uma matriz de T
Pergunta
O que é a maneira mais fácil de converter um BindingList<T>
a um T[]
?
EDIT:. Eu estou em 3.0 para este projeto, por isso não LINQ
Solução
Bem, se você tem LINQ (C # 3.0 + quer .NET 3.5 ou LINQBridge ) você pode usar .ToArray()
-. Caso contrário, basta criar uma matriz e copiar os dados
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
Outras dicas
Em .Net 2 você tem que método .CopyTo()
uso em seu BindingList<T>
Eu mudei este post desde que eu notei você marcou isto com .net2.0. Você pode usar uma lista, uma vez que tem um 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 é realmente uma solução menos eficaz do que a solução CopyTo que outros membros têm mostrado. Use sua solução em vez disso, este cria duas matrizes, o resultado e um interno para a instância List.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow