Thank you all for you swift reply. Very true , new would create a new instance ( hence the name ). I can understand why this could be confusing. I will try to explain as good as I can why I would want this. I create a new array of points, which I add to a ObjectList. private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) { foreach (DataGridViewRow SelectedRow in dataGridView.SelectedRows) { Points pt = new Points(); pt.AddPoint(X,Y); RenderableObjects.Objects.Add(pt); } } When I rerender the form, the points (X,Y) show on the screen. So everytime I click on a row in the datagridview, the method is called. However, everytime a new instance of Points() is added to the RenderableObjects list. But before adding the new X and Y point , I want the list to be cleared. This can be achieved by : RenderableObjects.Objects.Remove(pt); However you can't use this line in the same method, since a new reference is initiated and therefore the previous pt is not removed. My though was ( and it was just a though ) : If I could add a variable to the new reference, I could specifically filter, something like : = new Points(); pt[x].AddPoint(X,Y); RenderableObjects.Objects.Add(pt[x]); int y = x -1 ; RenderableObjects.Objects.Remove(pt[y]); x++; } } For obvious reasons , this code would not run 'cause you cannot use an array (x) size on a variable declaration. Like I said, it was just a thought. I hope I was able to clearify it a bit more. Cheers