 <p>The collection is a reference type, so other holding code onto that will see the old data. </p> <p>Two possible solutions:</p> <p>Instead of data = temp use data.Clear(); data.AddRange(temp) which will change the contents of the data field. </p> <p>Or better delete the MyCollection property and make class implement IEnumerable. This results in much better encapsulation. </p>