title: C# list.remove(item) removes item from other list I want
body: <p>I have following code:</p>
  
  <pre><code>List&lt;T&gt; firstList; //list with some items
  List&lt;T&gt; secondList = firstList //copyOfFirstList
  
  
  List&lt;T&gt; elementsToDelete = secondList.FindAll(whichShouldIDelete);
  
  
  foreach(var item in elementsToDelete){
       secondList.Remove(item);
  }
  </code></pre>
  
  <p>The problem is that Remove() method does not delete items only from secondList. Items are deleted from both firstList and secondList. So when I remove 20 items from secondList, the same elements are removed from firstList. What may be the cause of this situation?</p>