public class MyBindingList : BindingList<int>
{
public MyBindingList()
{
}
private BindingList<int> temp;
public void Backup()
{
int[] arr = new int[this.Count];
this.CopyTo(arr,0);
temp = new BindingList<int>(arr);
}
public void Restore()
{
this.Items.Clear();
//for(int i=0;i<temp.Count;i++) this.Add(temp[i]);
}
}
//for(int i=0;i<temp.Count;i++) this.Add(temp[i]);
是一种如此缓慢的恢复方式,那么我可以使用什么来更有效地恢复()?
答案 0 :(得分:1)
以你的例子,foreach是最简单,最快捷的方式。
更快的方法是通过copy-contructor。但是,根据您的示例,它将无法正常工作。你不能说这=新......
myList = new BindingList<int>(temp);
编辑:侧面评论,你可以通过删除数组的创建来清理Backup()并只需调用:
public void Backup()
{
this.temp = new BindingList<int>(this);
}