Regex.Replace, String.Replace или StringBuilder.Replace, какой самый быстрый?

Мне нужно заменить все System.Environment.Newline(s) в строке, возвращаемой моей функцией с System.Environment.Newline + \t (поскольку я пытаюсь применить отступ), и мне нужно сделать это несколько раз.

У меня вопрос, какой из них является наиболее эффективным способом сделать это?

я знаю это StringBuilder быстрее чем String.Replace но я не знаю о Regex.Replace,

2 ответа

Решение

Если вы просто пытаетесь сделать это в одной строке, я бы ожидал string.Replace быть быстрым, как и все остальное. StringBuilder полезно, когда вы хотите выполнить несколько отдельных шагов и не создавать промежуточную строку на каждом шаге.

Вы тестировали? string.Replace выяснить, достаточно ли это быстро для вас?

Лично я бы начал использовать регулярные выражения только тогда, когда имел дело с шаблоном, а не с фиксированной последовательностью символов. Если это абсолютно необходимо, вы, конечно же, можете это оценить.

Однако скомпилированное регулярное выражение будет работать быстрее, если только строка не массивна и не выполняется на множестве строк, String.Replace() это путь ради читабельности.

Другие вопросы по тегам