`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.