A adição da lista repovoa com o último elemento

Estou criando uma lista de objetos chamada MyComposedMode

List<MyComposedModel> TheListOfModel = new List<MyComposedModel>();
MyComposedModel ThisObject = new MyComposedModel();

foreach (MyComposedModel in some list of MyComposedModel)
{
 ThisObject.Reset(); //clears all properties
 ....
 TheListOfModel.Add(ThisObject);
}

O problema é que sempre que o loop for-iter itera e executa a instrução .Add, a lista é preenchida novamente com n + 1 objetos e cada objeto da lista é ThisObject. Por exemplo, na segunda vez em que é executado, o último item é inserido corretamente na posição [1], mas o primeiro item em [0] é substituído pelo segundo item e a lista contém o segundo item nas duas posiçõe

@ThisObject possui uma propriedade chamada ID e, quando depuro, vejo a alteração do ID, então sei que está passando pela lista, mas quando atinge a linha .Add, não sei o que acontece.

O que estou perdendo

Obrigad

questionAnswers(2)

yourAnswerToTheQuestion