¿Hay una mejor manera de hacer esto ...sustituir los elementos de cadena múltiple en C#
MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower();
He ampliado la clase cadena para mantenerla baja a un puesto de trabajo, pero hay una manera más 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();
}
}
Sólo por diversión (y para detener los argumentos en los comentarios) He empujó una esencia a la evaluación comparativa de los diversos ejemplos a continuación.
La opción de expresiones regulares puntuaciones terriblemente; la opción del diccionario aparece más rápido; la versión larga de la sustitución de stringbuilder es ligeramente más rápida que la mano corta.
Sobre la base de lo que tiene en sus puntos de referencia que se parece a la versión del diccionario no está haciendo todos los reemplazos y sospecho que es lo que está haciendo más rápido de lo las soluciones StringBuilder. – toad
@toad Hola desde 2009; Agregué un comentario más abajo en abril sobre ese flagrante error. Aunque la esencia se actualizó, omití D. La versión del diccionario es aún más rápida. –
Posible duplicado de [Alternativa a String.Replace multiple times?] (Http://stackoverflow.com/questions/12007358/alternative-to-string-replace-multiple-times) –