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™
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

/// <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!