Zastąp wiele elementów ciągu w C #

Czy jest lepszy sposób na zrobienie tego ...

MyString.Trim().Replace("&", "and").Replace(",", "").Replace("  ", " ")
         .Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower();

Rozszerzyłem klasę ciągów, aby utrzymać ją w jednym zadaniu, ale czy jest szybszy sposób?

public static class StringExtension
{
    public static string clean(this string s)
    {
        return s.Replace("&", "and").Replace(",", "").Replace("  ", " ")
                .Replace(" ", "-").Replace("'", "").Replace(".", "")
                .Replace("eacute;", "é").ToLower();
    }
}

Dla zabawy (i zatrzymania argumentów w komentarzach) przesunąłem gist do analizy porównawczej różnych przykładów poniżej.

https://gist.github.com/ChrisMcKee/5937656

Opcja wyrażenia regularnego jest straszna; opcja słownika pojawia się najszybciej; długa wersja wymieniana przez stringbuilder jest nieco szybsza niż krótka ręka.

questionAnswers(8)

yourAnswerToTheQuestion