using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Microsoft.Research.DynamicDataDisplay.Common.UndoSystem { public sealed class CollectionRemoveAction : UndoAction { private readonly IList collection; private readonly T item; private readonly int index; public CollectionRemoveAction(IList collection, T item, int index) { if (collection == null) throw new ArgumentNullException("collection"); if (item == null) throw new ArgumentNullException("addedItem"); this.collection = collection; this.item = item; this.index = index; } public override void Do() { collection.Remove(item); } public override void Undo() { collection.Insert(index, item); } } }