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.