我认为标题几乎捕获了我的问题,但背景如下:

当我加载一个表单时,它将一个成千上万个(3万个奇数)对象添加到一个绑定(bind)列表中。当我的应用程序第一次加载时,它需要花费几秒钟的时间(大约10秒左右的时间),它才能循环遍历对象列表,并使用add函数将其添加到BindingSource中。但是,当这种情况发生在使用相同代码进行加载的后续表单上时,只需一两秒钟。

所以我的查询将是:
1.为什么BindingList(Of T)没有AddRange成员?
2.使用AddRange函数可以更快地进行初始添加和后续添加吗?
3.有什么想法为什么一个版本的代码运行得比相同版本慢?

感谢您提供的任何帮助。

最佳答案

我不确定为什么没有可用的AddRange方法。您可以轻松地编写自己的扩展方法:

    /// <summary>
    /// Adds all the data to a binding list
    /// </summary>
    public static void AddRange<T>(this BindingList<T> list, IEnumerable<T> data)
    {
        if (list == null || data == null)
        {
            return;
        }

        foreach (T t in data)
        {
            list.Add(t);
        }
    }

09-27 07:21