`List<>` is implemented using an array. If you don't know how many elements you'll have, use `List<>` You can give the estimated (or maximum) number of elements you expect in the capacity constructor parameter (`new List<String>(10)`), this will be the initial size of the underlying array. When you `Add()` an item and there is no room for this item, the underlying array is copied to a new array of double the size.