скопировать список привязок в другой - PullRequest
1 голос
/ 27 февраля 2011
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 Ответ

1 голос
/ 27 февраля 2011

На вашем примере foreach - самый простой и быстрый способ.

Более быстрый способ - через конструктор копирования. Однако с вашим примером это не сработает. Вы не можете сказать это = новый ...

myList = new BindingList<int>(temp);

Edit: побочный комментарий, вы можете очистить Backup (), удалив создание массива и просто позвонив:

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