internal void CreateRestorePoint()
 {
     if (null != this.restoreList)
     {
         if (!this.restoreList.IsReadOnly)
             this.restoreList.Clear();
         else
         {
             this.restoreList.list = null;
             this.restoreList.dic.Clear();
         }
     }
     this.restoreList = new RecordCollection(this);
 }
        private RecordCollection(RecordCollection rhs)
        {
            this.dic = new RecordDictionary(rhs.dic.Count);

            List<Record> tempList = new List<Record>(rhs.list.Count);
            foreach (Record item in rhs.list)
            {
                Record copy = item.CopyInternal(this.table);

                this.dic.Add(copy);
                tempList.Add(copy);
            }

            this.list = new ReadOnlyCollection<Record>(tempList);
        }