将BindingList <t>转换为T </t>的数组

时间:2009-03-06 11:10:02

标签: c# .net generics .net-3.0

BindingList<T>转换为T[]的最简单方法是什么?

编辑:这个项目我在3.0上,所以没有LINQ。

3 个答案:

答案 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实例。