Каков наилучший способ построения массива?C# Array Builder?
Я пишу метод, который добавляет кучу материала в массив (из строк), а затем возвращает его. Прямо сейчас, я только что использовал List<string>
, а затем .Add
материал, а затем верните list.ToArray()
. Я не знаю длину массива заранее (если, конечно, я не использую алгоритм с двумя проходами, как раз для вычисления размера). Это хороший способ сделать это, или есть более эффективный способ?
PS: Я не хочу давать перечислимый.
У меня есть верхняя граница, следует ли использовать это? Он редко достигает этой верхней границы (вероятно, ближе к n/2 или n/3). – mpen
@Mark: для его использования будет более эффективным, чем для перераспределения - он будет выделять один дескриптор на элемент спереди, хотя - так, если верхняя граница находится в миллионах, это может быть не стоит того , (Как правило, он начинается с малого и умножается на 2x каждый раз, когда он перераспределяется - использование верхней границы обычно является лучшим вариантом) –
n/2 - хороший выбор, так как это только одно расширение от максимума. Конечно, это не заменяет фактические измерения, которые понадобятся в случае очень больших списков. – codekaizen