2012-01-31 26 views
9

可能重复:
How to escape brackets in a format string in .Net
string.format format string containing {如何添加{String中格式化C#

我试图格式字符串这样, {Enum.Enum1, “Enum1String” } 我试过这个代码

foreach (KeyValuePair<int, string> p in Helper.Dict) 
      { 
       // file.WriteLine(string.Format("{0} | {1}",p.Key,p.Value)); 
       file.WriteLine(string.Format("{Enum.{0},\"{1}\"}", p.Value,p.Value)); 

      } 

但它不起作用。如何添加{以字符串格式。 我在想使用stringbuilder。

+0

非常好用。谢谢 – 2012-01-31 17:54:59

回答

26

从这个MSDN FAQ

string s = String.Format("{{ hello to all }}"); 
Console.WriteLine(s); //prints '{ hello to all }' 
0

另外,使用@操作确保字符串精确表示,它出现在代码:

foreach (KeyValuePair<int, string> p in Helper.Dict) 
{ 
     // file.WriteLine(string.Format("{0} | {1}",p.Key,p.Value)); 
     file.WriteLine(@"{" + string.Format("Enum.{0},\"{1}\"", p.Value,p.Value) + @"}"); 
} 
+1

@操作符不会改变string.format如何处理“{”和“}”。将它们移动到string.format之外可以避免这个问题,是的,但它实际上并不解决它。 – Servy 2012-01-31 17:56:16