Интерпретация строки в переменной C#

Есть переменная содержащая: "{"header":"{request}"}". С помощью интерпретаций строк в c# можно поменять {request} с помощью символа '$'. Как поменять '{0}' в переменной?

Имею в виду это: $"header: {request}"


Ответы (1 шт):

Автор решения: vusaldev
public class AdvansedStingFormatter
{
    /// <summary>
    /// Форматировать строку с помощью динамической интерполяции
    /// </summary>
    /// <param name="format">Строка - шаблон</param>
    /// <param name="args">Словарь ключей для замены в шаблоне</param>
    /// <returns></returns>
    public static string Format(string format, Dictionary<string, string> args)
    {
        if (string.IsNullOrEmpty(format))
        {
            return format;
        }

        if (args == null)
        {
            throw new ArgumentNullException(nameof(args));
        }

        foreach (var arg in args)
        {
            format = format.Replace($"{{{arg.Key}}}", arg.Value);
        }
        return format;
    }
}

Использование:

string result = AdvansedStingFormatter.Format(json, new Dictionary<string, string>
{
    {"request", "r1" },
    {"foo", "f" }
});
→ Ссылка