List is implemented using an array String[].
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(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.
What I do: when I know the exact size of the collection and I know I won't change the size of the collection, I use an array (String[]). Otherwise I use a List.
By the way, this goes for any type and not just String.