Regex.Replace, String.Replace or StringBuilder.Replace which is the fastest?

.net, performance, string

Solution

If you're just trying to do it within a single string, I'd expect `string.Replace` to be as fast as anything else. `StringBuilder` is useful when you want to perform a number of separate steps and want to avoid creating an intermediate string on each step.

Have you benchmarked `string.Replace` to find out whether or not it's fast enough for you?

I would personally only start using regular expressions when I was actually dealing with a pattern, rather than just a fixed sequence of characters. If the performance of this is absolutely crucial, you could benchmark that as well of course.

Problem

I need to replace all `System.Environment.Newline(s)` in the string returned by my function with `System.Environment.Newline + \t` (as I am trying to apply indenting) and I need to do this several times. My question is which one is the most efficient way to do this? I know that `StringBuilder` is faster than `String.Replace` but I dont know about `Regex.Replace`.

Original source