title: List.Remove from one is also removing from another
body: <p>My method runs the following: </p>
  
  <pre><code>public void FrmClosed_Action(string name)
         {
             foreach (string item in this.origList)
             {
                 if (item == name)
                 { this.itemList.Remove(item); }
             }
             if (this.itemList.Count == 0)
             { Application.Exit(); }
         }
  </code></pre>
  
  <p>When I run the code <code>itemList = 2</code> and <code>origList = 2</code>. When an <code>item</code> is found matching the <code>name</code>, <code>itemList</code> is rightly reduced to <code>1</code> but the strange thing is so is <code>origList</code>. This happens straight away, as soon as the <code>foreach</code> enters the second run it crashes saying <code>collection was modified; enumeration operation may not compute</code>.</p>