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]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

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