Feedback

C# - Replace mit Dictionary

Veröffentlicht von am 5/4/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 5/7/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 5/7/2013:
Danke.
Wie würdest du es machen?
schließlich kann ich input ja nicht ändern oder was zuweisen.. Oder?!
Koopakiller schrieb am 5/8/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!