/// <summary> /// Execute all pending operations for the given index. /// </summary> /// <param name = "index">The index for which to execute the pending operations.</param> void DoPendingOperations(int index) { if (index < 0 || index > Count) { throw new ArgumentException("The specified index lies outside of the available range.", nameof(index)); } List <Func <TObject, TObject> > operations = _pendingOperations.ElementsAt(index); ExecuteOperations(operations, index); // Remove operations as they are no longer pending. _pendingOperations.RemoveInterval(new Interval <int>(index, index)); }