protected override void RemoveItem(int index)
        {
            var item = this[index];

            base.RemoveItem(index);
            Added.AssertEmpty();
            Removed.AssertContainsOnly(item);
            Removed.Clear();
        }
        public override void Clear()
        {
            var items = this.ToArray();

            base.Clear();
            Removed.AssertContainsOnly(items);
            Removed.Clear();
            Added.AssertEmpty();
        }
 public override bool Remove(string item)
 {
     if (base.Remove(item))
     {
         Added.AssertEmpty();
         Removed.AssertContainsOnly(item);
         Removed.Clear();
         return(true);
     }
     else
     {
         Added.AssertEmpty();
         Removed.AssertEmpty();
         return(false);
     }
 }
 protected override bool Remove(string item, int index)
 {
     if (base.Remove(item, index))
     {
         Added.AssertEmpty();
         Removed.AssertContainsOnly(item);
         Removed.Clear();
         return(true);
     }
     else
     {
         Added.AssertEmpty();
         Removed.AssertEmpty();
         return(false);
     }
 }