Ho una stringa su cui ho bisogno di fare alcune sostituzioni. Ho un Dictionary<string, string>
dove ho definito coppie di ricerca-sostituzione. Ho creato i seguenti metodi di estensione per eseguire questa operazione:C# String sostituire con dizionario
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;
}
Esiste un modo migliore per farlo?
Grande risposta. Penso che la tua proposta sarà effettivamente migliore di iterare su tutto il dizionario, poiché l'espressione regolare sostituirà solo i token che sono stati trovati. Non controllerà tutti quelli che possono essere all'interno.Quindi, se ho un grosso dizionario e un piccolo numero di token nella stringa di input, in realtà posso dare una spinta alla mia app. – RaYell
Molto utile. L'ho refactored come metodo di estensione per Regex, che non posso mostrare in un commento, quindi aggiungerò come risposta extra un po 'ridondante qui sotto. –
Questo genererà un'eccezione se la chiave non viene trovata. – Axel