Зависит от того, будет ли размер замены больше, чем замененная строка.
StringBuilder перераспределяет свой буфер , тогда как строка содержит только сколько символов в нем.
Свойство StringBuilder.Capacity указывает, сколько символов будет содержать буфер, а StringBuilder.Length - это количество используемых символов.
Обычно вы должны установить значение StringBuilder.Capacity больше ожидаемой результирующей строки. В противном случае StringBuilder потребуется перераспределить свой буфер. Когда StringBuilder перераспределяет свой буфер, он удваивает его в размере , что означает, что после перераспределения пары он, вероятно, значительно больше, чем должен быть, по умолчанию емкость начинается с 16.
Устанавливая значение Capacity при запуске (например, в конструкторе), вы сохраняете перераспределения буфера StringBuilder. Вы можете использовать StringBuilder.MaxCapacity, чтобы ограничить максимальную емкость, до которой может быть расширен StringBuilder.