Le List<T> sono "dinamiche" puoi aggiungere e togliere elementi in run-time e non occorre un dimensionamento iniziale nè un redim. Se il numero di elementi di un insieme è fisso allora usa gli array, mentre se può variare durante l'esecuzione del programma allora meglio le List.