Adding to list repopulates with the last element
I'm creating a list of objects called MyComposedModel.

    List<MyComposedModel> TheListOfModel = new List<MyComposedModel>();
    MyComposedModel ThisObject = new MyComposedModel();
    
    foreach (MyComposedModel in some list)
    {
     ThisObject.Reset(); //clears all properties
     ....
     TheListOfModel.Add(ThisObject);
    }

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.

What am I missing?

Thanks 
Adding to list repopulates with the last element
===

I'm creating a list of objects called MyComposedModel.

    List<MyComposedModel> TheListOfModel = new List<MyComposedModel>();
    MyComposedModel ThisObject = new MyComposedModel();
    
    foreach (MyComposedModel in some list)
    {
     ThisObject.Reset(); //clears all properties
     ....
     TheListOfModel.Add(ThisObject);
    }

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.

What am I missing?

Thanks 