Tengo una cadena en la que tengo que hacer algunos reemplazos. Tengo un Dictionary<string, string>
donde tengo pares de búsqueda-reemplazo definidos. He creado los siguientes métodos de extensión para realizar esta operación:C# Cadena reemplazar con diccionario
public static string Replace(this string str, Dictionary<string, string> dict)
{
StringBuilder sb = new StringBuilder(str);
return sb.Replace(dict).ToString();
}
public static StringBuild Replace(this StringBuilder sb,
Dictionary<string, string> dict)
{
foreach (KeyValuePair<string, string> replacement in dict)
{
sb.Replace(replacement.Key, replacement.Value);
}
return sb;
}
¿Hay una forma mejor de hacerlo?
Gran respuesta. Creo que su propuesta será mejor que repetir todo el diccionario, ya que la expresión regular solo reemplazará los tokens que se encontraron. No comprobará si puede haber alguien dentro.Entonces, si tengo un gran diccionario y un pequeño número de tokens en la cadena de entrada, eso realmente puede impulsar mi aplicación. – RaYell
Muy útil. Refactoreé como un método de extensión para Regex, que no puedo mostrar en un comentario, así que lo agregaré como una respuesta extra algo redundante a continuación. –
Esto lanzará una excepción si no se encuentra la clave. – Axel