Что является самым простым способом преобразования BindingList<T>
в T[]
?Преобразование BindingList <T> в массив из T
EDIT: Я использую 3.0 для этого проекта, поэтому LINQ.
Что является самым простым способом преобразования BindingList<T>
в T[]
?Преобразование BindingList <T> в массив из T
EDIT: Я использую 3.0 для этого проекта, поэтому LINQ.
Ну, если у вас есть LINQ (C# 3.0 + либо .NET 3.5 или LINQBridge), вы можете использовать .ToArray()
- в противном случае, просто создать массив и скопируйте данные.
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
Я изменил это сообщение, так как заметил, что вы отметили это с помощью .net2.0. Вы можете использовать Список, так как он имеет метод 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, показанное другими участниками. Вместо этого используйте свое решение, которое создает два массива, результат и один внутренний экземпляр списка.
Вопрос помечен .net2.0 – annakata
@annakata; * строго говоря, более актуально, является ли это C# 2.0 или C# 3.0, поскольку LINQ по-прежнему доступен с .NET 2.0 + C# 3.0 + несколькими довольно простыми способами и т. д. (или просто LINQBridge). –
@ Tant102 - Я предпочел ваш оригинальный ответ; -p. Подход List
В .Net 2 вы должны использовать .CopyTo()
метод на вашем BindingList<T>
Кроме того, вы все равно можете использовать LINQ с .NET 3.0, если у вас есть компилятор C# 3.0 (или VS2008). Просто ссылку LINQBridge. –