将BindingList<T>
转换为T[]
的最简单方法是什么?
答案 0 :(得分:9)
好吧,如果您有LINQ(C#3.0 + .NET 3.5或LINQBridge),您可以使用.ToArray()
- 否则,只需创建一个数组并复制数据。
T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
答案 1 :(得分:3)
在.Net 2中,您必须在.CopyTo()
BindingList<T>
方法
答案 2 :(得分:1)
我已经更改了这篇文章,因为我注意到你用.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实例。