Maison > développement back-end > C++ > Comment puis-je obtenir un formatage de chaîne nommée en C# ?

Comment puis-je obtenir un formatage de chaîne nommée en C# ?

Linda Hamilton
Libérer: 2025-01-03 15:44:40
original
256 Les gens l'ont consulté

How Can I Achieve Named String Formatting in C#?

Formatage de chaînes nommées en C#

Dans les langages de programmation comme Python, vous pouvez formater les chaînes par nom plutôt que par position. Par exemple, vous pourriez avoir une chaîne comme celle-ci :

print '%(language)s has %(#)03d quote types.' % \
      {'language': "Python", "#": 2}
Copier après la connexion

Cela afficherait "Python a 002 types de guillemets."

En C#, il n'existe pas de méthode intégrée pour formater les chaînes. par nom. Cependant, il existe plusieurs façons d'obtenir un résultat similaire.

Utiliser un dictionnaire

Une option consiste à utiliser un dictionnaire pour mapper les noms de variables à leurs valeurs. Vous pouvez ensuite transmettre le dictionnaire à une méthode de formatage de chaîne personnalisée qui utilise les noms de variables pour formater la chaîne.

Voici un exemple :

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;
}
Copier après la connexion

Vous pouvez utiliser cette méthode comme ceci :

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

string formattedString = FormatStringByName("{some_variable}: {some_other_variable}", values);
Copier après la connexion

Utilisation de l'interpolation de chaînes

En C# 6.0 et plus tard, vous pourrez utiliser l'interpolation de chaîne pour formater les chaînes par nom. L'interpolation de chaînes est une fonctionnalité qui vous permet d'incorporer des expressions directement dans des chaînes.

Voici un exemple :

string formattedString = $"{some_variable}: {some_other_variable}";
Copier après la connexion

Cela afficherait "hello: world".

Méthodes d'extension

Une autre option consiste à utiliser des méthodes d'extension pour ajouter une fonctionnalité de formatage de chaîne nommée à la chaîne. classe. Voici un exemple de méthode d'extension que vous pouvez utiliser :

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;
    }
}
Copier après la connexion

Vous pouvez utiliser cette méthode d'extension comme ceci :

string formattedString = "{some_variable}: {some_other_variable}".FormatByName(new { some_variable = "hello", some_other_variable = "world" });
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal