/// <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));
        }