Лучший способ узнать, какой из них быстрее является эталоном его для вашей конкретной проблемы - написать простую упряжь и время тестирования двух вариантов.
Сказав, что - строки C# immutable, что означает, что вы не можете изменить их после их создания. Когда вы вызываете String.Replace
, среда выполнения должна создать новый экземпляр String
для результата. Это означает, что последовательность изменений в одной и той же строке будет медленной, так как среда выполнения должна создать новый объект для каждой манипуляции, распределяя память и копируя строковые данные каждый раз.
StringBuilder
был специально разработан как изменяемая строка для такого типа ситуаций - чтобы избежать создания нового экземпляра String
для каждой манипуляции.
Так что StringBuilder
почти наверняка будет быстрее, если вы выполните последовательность вызовов Replace
в той же строке.
Если у вас есть 'StringBuilder', используйте' StringBuilder.Replace', если вы используете 'String'' String.Replace'. Так что в основном вы спрашиваете, что быстрее, 'String' или' StringBuilder'. Это зависит, измерьте его самостоятельно. Сначала напишите четкий и читаемый код и оптимизируйте его позже, если вам действительно нужно. –
Знайте, этот два метода «Заменить» использует разные классы. Итак .. –
Возможный дубликат [Is StringBuilder.Replace() более эффективен, чем String.Replace?] (Http://stackoverflow.com/questions/287842/is-stringbuilder-replace-more-efficient-than-string-replace) –