当字符串包含'{}'字符时不能组合字符串

问题描述:

我试图在C#中执行字符串插值。我试图结合的输入字符串包含许多'{}'字符(因为它的javascript),这似乎是导致错误。当字符串包含'{}'字符时不能组合字符串

为什么不能在C#中对这些字符串执行字符串插值?

string test = string.Format("{img: \"{0}\", html: \"{1}\"}", "images/a.png", "<div></div>"); 
// so the output should be 
// "{img: \"images/a.png\", html: \"<div></div>\"}" 

我得到的错误是:

输入字符串的不正确的格式。

你能告诉我如何实现我的字符串插值吗?

+1

如何'string.Format'应该告诉'{IMG之间的区别:'和'{0'? – 2012-02-19 23:55:52

括号需要进行转义:

string test = string.Format("{{img: \"{0}\", html: \"{1}\"}}", "images/a.png", "<div></div>"); 

大括号对string.Format有特殊含义,所以你需要逃避它们。

请参见:http://msdn.microsoft.com/en-us/library/txafckwd.aspx

有没有简单的方法做你想做的,但文档页面提出了一些解决方法。