2011-02-27 152 views
1
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]);副本的BindingList到另一個

是如此緩慢的方式來恢復,這樣我可以更有效地使用什麼恢復()?

回答

1

用你的例子,foreach是最簡單和最快捷的方法。

更快的方法是通過複製構造函數。然而,用你的例子,它不會工作。你不能說這個=新...

myList = new BindingList<int>(temp); 

編輯:側評論,你可以通過刪除陣列創建清理備份()並調用:

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

是的,我明白,只能用於備份,謝謝。 – ocanal 2011-02-27 19:49:19

相關問題