public void AddToTmp() { if (undoCounter == tmpList.Length) // условие задано просто для ускорени добавления, поскольку InsertAndCut перебирает список до неоходимого индекса //равенство undoCounter и tmpList.Length означает, что Undo не делалось и будет простая добавка. // Если же Undo делалось, то после того Bitmap, до которого дошли с помощью Undo будет добавлен новый Bitmap, а те, // которые ранее шли после текущего Bitmap удаляются из списка (с ними разрываются связи) { tmpList.Add(new Bitmap(currentBitmap)); } else { tmpList.InsertAndCut(new Bitmap(currentBitmap), undoCounter); } undoCounter++; }