Existe um jeito melhor de fazer isso...
MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower();
Eu estendi a classe string para mantê-la em um único trabalho, mas existe uma maneira mais rápida?
public static class StringExtension
{
public static string clean(this string s)
{
return s.Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace(".", "")
.Replace("eacute;", "é").ToLower();
}
}
Apenas por diversão (e para interromper os argumentos nos comentários), eu apresentei uma ideia básica comparando os vários exemplos abaixo.
A opção regex pontua terrivelmente; a opção de dicionário surge mais rápido; a versão longa do stringbuilder replace é ligeiramente mais rápida do que a mão curta.