Regex.Replace, String.Replace или StringBuilder.Replace, какой самый быстрый? - PullRequest
1 голос
/ 25 октября 2009

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

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

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

Ответы [ 2 ]

14 голосов
/ 25 октября 2009

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

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

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

3 голосов
/ 25 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...