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