格式化字符串 - 输入字符串的格式不正确

Formatting string - input string was not in correct format

我想要一个函数来接收一个字符串并将其格式化为另一个在 C# 中具有以下格式的字符串:(测试是一个输入变量)

output:
@"{MyKey=testing}"

我的简单程序如下:

class Program
{
    static void Main(string[] args)
    {
        string s = test("testing");
    }
    private static string test(string myKey)
    {
        string s = string.Format("@{\"MyKey={0}\"}", myKey);
        return s;
    }
}

没有语法错误,但我遇到了这个运行时错误:

我知道字符串包含特殊字符,但我想知道是否可以使用 string.Format 来创建我想要的输出?我应该如何正确格式化字符串?

您需要使用双花括号来转义那些应该是字符串一部分的花括号。查看更多 here.

class Program
{
    static void Main(string[] args)
    {
        string s = test("testing");
        s.Dump();
    }
    private static string test(string myKey)
    {
        string s = string.Format("@{{\"MyKey={0}\"}}", myKey);
        return s;
    }
}

您也可以像这样使用字符串插值:

string s = $"@{{\"MyKey={myKey}\"}}";