Кстати: в следующий раз, когда вы окажетесь в подобной ситуации, попробуйте предварительно выделить память. Это значительно улучшает время выполнения независимо от того, какие именно структуры данных вы используете. Большинство контейнеров (StringBuilder
также) имеют конструктор, который позволяет резервировать память. Таким образом, во время чтения необходимо меньше перераспределения времени.
Например, вы можете написать следующее, если хотите прочитать данные из файла в StringBuilder
:
var info = new FileInfo(path);
var sb = new StringBuilder((int)info.Length);
(Необходимый состав, потому что System.IO.FileInfo.Length
равен long
.)