Please show more of your code.
If that last piece of code declares and initializes the list
variable outside the loop you're basically reusing the same list object, thus adding everything into one list.
Also show where .Capacity and .Count comes into play, how did you get those values?