Вопрос

Какой самый простой способ преобразовать BindingList < T > в T [] ?

РЕДАКТИРОВАТЬ: я нахожусь на 3.0 для этого проекта, поэтому нет LINQ.

Это было полезно?

Решение

Хорошо, если у вас есть LINQ (C # 3.0 + .NET 3.5 или LINQBridge ) вы можете использовать .ToArray () - иначе просто создайте массив и скопируйте данные.

T[] arr = new T[list.Count];
list.CopyTo(arr, 0);

Другие советы

В .Net 2 вы должны использовать метод .CopyTo () в своем BindingList < T >

Я изменил этот пост, так как заметил, что вы пометили это как .net2.0. Вы можете использовать List, так как он имеет метод ToArray ().

public T[] ToArray<T>(BindingList<T> bindingList) {
    if (bindingList == null)
        return new T[0];

    var list = new List<T>(bindingList);
    return list.ToArray();
}

Примечание. Это действительно менее производительное решение, чем решение CopyTo, которое показали другие участники. Вместо этого используйте их решение, оно создает два массива, результат и один внутренний для экземпляра List.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top