转换 BindingList到一个 T 数组

发布于 2024-07-14 05:25:48 字数 110 浏览 7 评论 0原文

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

编辑:我这个项目使用的是 3.0,所以没有 LINQ。

What's the easiest way to convert a BindingList<T> to a T[] ?

EDIT: I'm on 3.0 for this project, so no LINQ.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

儭儭莪哋寶赑 2024-07-21 05:25:48

好吧,如果您有 LINQ(C# 3.0 + .NET 3.5 或 LINQBridge),您可以使用 .ToArray() - 否则,只需创建一个数组并复制数据。

T[] arr = new T[list.Count];
list.CopyTo(arr, 0);

Well, if you have LINQ (C# 3.0 + either .NET 3.5 or LINQBridge) you can use .ToArray() - otherwise, just create an array and copy the data.

T[] arr = new T[list.Count];
list.CopyTo(arr, 0);
半枫 2024-07-21 05:25:48

在 .Net 2 中,您必须在 BindingList 上使用 .CopyTo() 方法

In .Net 2 you have to use .CopyTo() method on your BindingList<T>

无声无音无过去 2024-07-21 05:25:48

自从我注意到您用 .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 实例内部的数组。

I've changed this post since I noticed you tagged this with .net2.0. You could use a List since it has an ToArray() method.

public T[] ToArray<T>(BindingList<T> bindingList) {
    if (bindingList == null)
        return new T[0];

    var list = new List<T>(bindingList);
    return list.ToArray();
}

Note: This is indeed a less performant solution than the CopyTo solution that other members have shown. Use their solution instead, this one creates two arrays, the result and one internal to the List instance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文