Основным отличием является то, что вы можете добавлять новые элементы в List<T>
.
Внутренне List<T>
сохраняет элементы в массиве типа T[]
, и он просто автоматически выделяет больший массив при добавлении новых элементов (или уменьшает массив при удалении элементов). Это означает, что производительность будет примерно одинаковой. При использовании List<T>
наблюдается незначительное косвенное отклонение, но JITter может указывать на это.
Основная причина использования List<T>
заключается в том, что он дает вам больше функциональности - вы можете добавлять и удалять элементы.
РЕДАКТИРОВАТЬ В вашем примере с PrintValues
это не имеет большого значения. Это зависит от источника данных. Если вы просто хотите вызвать его с некоторыми фиксированными аргументами, вы можете использовать массивы, потому что их проще создавать, например, new [] { "hello", "world" }
.
В большинстве реальных сценариев вы будете читать данные откуда-то - если вы можете получить все данные одновременно, то вы можете использовать массивы. Если вы будете читать их один за другим, вы будете использовать List<string>
, чтобы вы могли добавлять элементы по мере их чтения.