title: Create copy of List<t> without reference to original
body: <p>I know this has been covered before but from what I understand in the <a href="https://stackoverflow.com/questions/13447248/c-sharp-how-to-assign-listt-without-being-a-reference%20this">post</a> this should work. </p>
  
  <p><strong>Example code:</strong></p>
  
  <p>I have a custom type:</p>
  
  <pre><code>public class MyType
  {
      public List&lt;MySubType&gt; Movie { get; set; }
      public List&lt;int&gt; Ranks { get; set; }
      public string Location { get; set; }
      public string Released { get; set; }
  }
  </code></pre>
  
  <p>I then create a List of this type </p>
  
  <pre><code>List&lt;MyType&gt; myMovies = new List&lt;MyType&gt;();
  </code></pre>
  
  <p>Later in the code I need to create a copy of this list and change it without affecting the original.</p>
  
  <pre><code>List&lt;MyType&gt; copyMovies = new List&lt;MyType&gt;(myMovies);
  </code></pre>
  
  <p>But now if I remove from the list within copyMovies</p>
  
  <pre><code>copyMovies.Movie.RemoveAt(x);
  </code></pre>
  
  <p>It removes from both lists</p>
  
  <p>Unless I am totally missing something <a href="https://stackoverflow.com/questions/13447248/c-sharp-how-to-assign-listt-without-being-a-reference%20this">this</a> post suggests I should be able to change the copy list without it effecting the original.</p>