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中,您必须在 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实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top