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

Foi útil?

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