title: Behaviour after deleting list item from List<item> in c#
body: <p>I have list <code>List &lt;Bitmap&gt; memory = new List&lt;Bitmap&gt;();</code>. I use this list for saving states of image in simple program for working with images. I want to implement operations back and forward, which will iterate between states saved in memory (= saved in list memory).</p>
  
  <p>Memory will have only a limited range, for example 20 states, which means when I will have 20 modifications of an image and I do the 21st, I will delete the first state. Probably by operation <code>memory.RemoveAt(0);</code>. What will happen with the list then? I need the list with -1 items than the previous list and with shifted indexes.</p>
  
  <p>I have list <code>list.Count = 20</code>, I delete the first item, I want <code>list.Count = 19</code> and shifted indexes - something like trim free spaces so index 1 of original list will have now index 0 and index 2 of original index will have index 1, etc.. I found a method of list <code>TrimExcess</code>, it would do what I want but I'm not sure.</p>
  
  <p>When I will have list of 19 I can save the new state to the last place by <code>Add()</code>, so I will have again the list of 20.</p>