title: C# Moving a section of items within the list
body: <p>I'm finding this is a lot harder than I thought. How can I move a section of items within a List?</p>
  
  <p>For example, if I have the following list:</p>
  
  <pre><code>List&lt;int&gt; myList = new List&lt;int&gt;();
  for(int i=0; i&lt;10; i++) {
      myList.Add(i);
  }
  </code></pre>
  
  <p>This list would contain <code>{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }</code>.</p>
  
  <p>How can I move sections of the List around? Say I want to move <code>{ 7, 8, 9 }</code> to the the 4th index, making it:</p>
  
  <pre><code>{ 0, 1, 2, 3, 7, 8, 9, 4, 5, 6 }
  </code></pre>
  
  <p>Or, say I want to move <code>{ 1, 2 }</code> in <code>{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }</code> to the 8th index, making it:</p>
  
  <pre><code>{ 0, 3, 4, 5, 6, 7, 1, 2, 8, 9 }
  </code></pre>
  
  <p>Can anyone provide some code? Something that takes 3 values like the following would be great.</p>
  
  <pre><code>MoveSection(insertionPoint, startIndex, endIndex)
  </code></pre>
  
  <p>Note when you remove sections from the beginning the insertion location has changed. This makes it quite a bit more difficult.</p>