title: Does List<T> guarantee insertion order?
body: <p>Say I have 3 strings in a List (e.g. &quot;1&quot;,&quot;2&quot;,&quot;3&quot;).</p>
  <p>Then I want to reorder them to place &quot;2&quot; in position 1 (e.g. &quot;2&quot;,&quot;1&quot;,&quot;3&quot;).</p>
  <p>I am using this code (setting indexToMoveTo to 1):</p>
  <pre><code>listInstance.Remove(itemToMove);
  listInstance.Insert(indexToMoveTo, itemToMove);
  </code></pre>
  <p>This seems to work, but I am occasionally getting strange results; sometimes the order is incorrect or items from the list are getting deleted!</p>
  <p>Any ideas? Does <code>List&lt;T&gt;</code> guarantee order?</p>
  <h3>Related:</h3>
  <blockquote>
  <p><a href="https://stackoverflow.com/questions/453006/does-a-listt-guarantee-that-items-will-be-returned-in-the-order-they-were-added">Does a List&lt;T&gt; guarantee that items will be returned in the order they were added?</a></p>
  </blockquote>