将bindinglist复制到另一个

时间:2011-02-27 19:13:38

标签: c# class bindinglist

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]);

是一种如此缓慢的恢复方式,那么我可以使用什么来更有效地恢复()?

1 个答案:

答案 0 :(得分:1)

以你的例子,foreach是最简单,最快捷的方式。

更快的方法是通过copy-contructor。但是,根据您的示例,它将无法正常工作。你不能说这=新......

myList = new BindingList<int>(temp);

编辑:侧面评论,你可以通过删除数组的创建来清理Backup()并只需调用:

public void Backup()
{
    this.temp = new BindingList<int>(this);
}