我认为标题几乎捕获了我的问题,但背景如下:
当我加载一个表单时,它将一个成千上万个(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);
}
}