title: Adding to list repopulates with the last element
body: <p>I'm creating a list of objects called MyComposedModel.</p>
  
  <pre><code>List&lt;MyComposedModel&gt; TheListOfModel = new List&lt;MyComposedModel&gt;();
  MyComposedModel ThisObject = new MyComposedModel();
  
  foreach (MyComposedModel in some list of MyComposedModel)
  {
   ThisObject.Reset(); //clears all properties
   ....
   TheListOfModel.Add(ThisObject);
  }
  </code></pre>
  
  <p>The problem is that each time the for-each loop iterates and executes the .Add statement, the list is repopulated with n+1 objects and every object in the list is ThisObject. So for instance, the second time it runs, the last item is correctly inserted in position [1] BUT the first item in [0] is replaced with the second item and the list contains the second item in both positions.</p>
  
  <p>ThisObject has a property called ID and when I debug, I see the ID change so I know that it's going through the list but when it reaches the .Add line, I don't know what happens.</p>
  
  <p>What am I missing?</p>
  
  <p>Thanks </p>