Преобразовать список BindingList < T > к массиву Т
Вопрос
Какой самый простой способ преобразовать 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.