Heim > Backend-Entwicklung > C++ > Wie kann ich eine benannte String-Formatierung in C# erreichen?

Wie kann ich eine benannte String-Formatierung in C# erreichen?

Linda Hamilton
Freigeben: 2025-01-03 15:44:40
Original
308 Leute haben es durchsucht

How Can I Achieve Named String Formatting in C#?

Benannte String-Formatierung in C#

In Programmiersprachen wie Python können Sie Strings nach Namen statt nach Position formatieren. Sie könnten beispielsweise eine Zeichenfolge wie diese haben:

print '%(language)s has %(#)03d quote types.' % \
      {'language': "Python", "#": 2}
Nach dem Login kopieren

Dies würde „Python hat 002 Anführungszeichentypen“ ausgeben.

In C# gibt es keine integrierte Methode zum Formatieren von Zeichenfolgen mit Namen. Es gibt jedoch einige Möglichkeiten, ein ähnliches Ergebnis zu erzielen.

Verwendung eines Wörterbuchs

Eine Möglichkeit besteht darin, ein Wörterbuch zu verwenden, um Variablennamen ihren Werten zuzuordnen. Anschließend können Sie das Wörterbuch an eine benutzerdefinierte Zeichenfolgenformatierungsmethode übergeben, die die Variablennamen zum Formatieren der Zeichenfolge verwendet.

Hier ist ein Beispiel:

public static string FormatStringByName(string format, Dictionary<string, object> values)
{
    // Create a regular expression to match variable names in the format string.
    var regex = new Regex(@"\{(.*?)\}");

    // Replace each variable name with its value from the dictionary.
    var formattedString = regex.Replace(format, match => values[match.Groups[1].Value].ToString());

    return formattedString;
}
Nach dem Login kopieren

Sie können diese Methode wie folgt verwenden:

var values = new Dictionary<string, object>
{
    { "some_variable", "hello" },
    { "some_other_variable", "world" }
};

string formattedString = FormatStringByName("{some_variable}: {some_other_variable}", values);
Nach dem Login kopieren

Verwenden der String-Interpolation

In C# 6.0 und Später können Sie die Zeichenfolgeninterpolation verwenden, um Zeichenfolgen nach Namen zu formatieren. String-Interpolation ist eine Funktion, mit der Sie Ausdrücke direkt in Strings einbetten können.

Hier ist ein Beispiel:

string formattedString = $"{some_variable}: {some_other_variable}";
Nach dem Login kopieren

Dies würde „Hallo: Welt“ ausgeben.

Erweiterungsmethoden

Eine weitere Option besteht darin, Erweiterungsmethoden zu verwenden, um der Zeichenfolge benannte Zeichenfolgenformatierungsfunktionen hinzuzufügen Klasse. Hier ist ein Beispiel für eine Erweiterungsmethode, die Sie verwenden können:

public static class StringExtensions
{
    public static string FormatByName(this string format, object values)
    {
        // Get the type of the values object.
        var type = values.GetType();

        // Get the properties of the values object.
        var properties = type.GetProperties();

        // Create a regular expression to match variable names in the format string.
        var regex = new Regex(@"\{(.*?)\}");

        // Replace each variable name with its value from the values object.
        var formattedString = regex.Replace(format, match =>
        {
            var property = properties.FirstOrDefault(p => p.Name == match.Groups[1].Value);
            if (property != null)
            {
                return property.GetValue(values).ToString();
            }
            else
            {
                return match.Groups[1].Value;
            }
        });

        return formattedString;
    }
}
Nach dem Login kopieren

Sie können diese Erweiterungsmethode wie folgt verwenden:

string formattedString = "{some_variable}: {some_other_variable}".FormatByName(new { some_variable = "hello", some_other_variable = "world" });
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich eine benannte String-Formatierung in C# erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage