2011-08-18 15 views
22

Duplicar posibles:
Escape curly brace '{' in String.FormatC# String.Format con Curly soporte en cadena

C# tiene un método String.Format que le permite dar formato a una cadena, pero params la inserción de las fichas {0}{1}

Estoy tratando de crear una cadena json simple que requiere llaves para estar en la cadena, y por lo tanto es rompiendo el formateador

String.Format("{ foo:'{0}', bar:'{1}' }", foo, bar); 

Adición de un escape antes de que los apoyos no ayudó

emite una excepción diciendo que mi cadena tiene el formato correcto, alguien sabe cómo conseguir alrededor de esto?

+0

En Marco de 4.6 o más alto, usted puede hacer esto ... \t cadena de Moe = "Moe"; \t cadena larry = "Larry"; \t string curly = "{Curly}"; \t string results = $ "1: {moe} 2: {larry} 3: {rizado}"; – rwg

Respuesta

44

Puede escapar de las llaves con la duplicación de ellas en sus cadenas de formato:

string.Format("{{ foo: '{0}', bar: '{1}' }}", foo, bar); 
11

Usted puede simplemente utilizar {{ o }} para escapar de una llave.

Console.WriteLine(String.Format("{0}, {1}, {{{2}}}", "Moe", "Larry", "Curly")); 

produce:

Moe, Larry, Curly {}

+5

Debe tener cuidado con la triplicación de llaves ... en este caso funciona, pero, en general, el analizador lo ve como '{{{' o '}}}'. Puede ser mejor crear un {3} que sea el corsé –

Cuestiones relacionadas