Feedback

C# - Replace mit Dictionary

Veröffentlicht von am 04.05.2013
(1 Bewertungen)
Dieses Snippet ersetzt in einem String jedes vorkommen eines Keys durch seinen ensprechenden Wert aus dem Dictionary.

Der Aufruf ist eigentlich selbsterklärend:
Dictionary dict = new Dictionary<string, string> {
{"(C)", "©"},
{"(TM)", "™"},
};
string old = "(C) 2013 Darius Arnold(TM)";
string new = ReplaceWithDictionary(old, dict);

Ergibt folgendes: © 2013 Darius Arnold™
/// <summary>
/// Replaces each occurrence of a key of a dictionary in a string with the maching value.
/// </summary>
/// <param name="input">The text which should be edited.</param>
/// <param name="dict">The dictionary with the strings.</param>
/// <returns>The edited string.</returns>
private static string ReplaceWithDictionary(string input, Dictionary<String, String> dict)
{
    foreach (string s in dict.Keys)
        input = input.Replace(s, dict[s]);

    return input;
}
Abgelegt unter Replace, Ersetzen, Dictionary.

3 Kommentare zum Snippet

Koopakiller schrieb am 07.05.2013:
Hallo, gute Idee, konnte ich auch gleich benutzen :)
Ich würde jedoch keinen 2. String anlegen, da dieser mehr RAM verbraucht, bei großen strings können das schon ein paar MB sein.
dariusarnold schrieb am 07.05.2013:
Danke.
Wie würdest du es machen?
schließlich kann ich input ja nicht ändern oder was zuweisen.. Oder?!
Koopakiller schrieb am 08.05.2013:
Doch, das geht:

foreach (string s in dict.Keys)
input = input.Replace(s, dict[s]);

return input;

Probiers aus ;)
 

Logge dich ein, um hier zu kommentieren!