610 votos

Cómo escapar de llaves (llaves) en una cadena de formato en .NET

¿Cómo pueden los soportes se escapó en el uso de string.Format. Por ejemplo:

String val = "1,2,3"
String.Format(" foo {{0}}", val); 

Este ejemplo no es una excepción, pero las salidas de la cadena foo {0}

Hay una manera de escapar de los brackets?

832voto

smink Puntos 39640

Para que a la salida foo {1, 2, 3} tienes que hacer algo como:

string t = "1, 2, 3";
string v = String.Format(" foo {{{0}}}", t);

A la salida de un { utiliza {{ y a la salida de un } utiliza }}.

154voto

Guru Kara Puntos 2438

Sí a la salida { en string.Format tienes que escapar de esta {{

Por lo que este

String val = "1,2,3";
String.Format(" foo {{{0}}}", val);

la salida "foo {1,2,3}".

PERO usted tiene que saber acerca de un bug diseño en C# que es el que va en la lógica anterior se podría suponer por debajo de este código, se imprimirá {24.00}

int i = 24;
string str = String.Format("{{{0:N}}}", i); //gives '{N}' instead of {24.00}

Pero esto impresiones {N}. Esto es porque la forma en C# analiza las secuencias de escape y el formato de caracteres. Para obtener el valor deseado en el caso anterior este lugar.

String.Format("{0}{1:N}{2}", "{", i, "}") //evaluates to {24.00}

Artículos De Referencia String.Format gottachy El Formato de cadena de preguntas frecuentes

59voto

Wolfwyrd Puntos 7142

Casi allí! La secuencia de escape para un aparato ortopédico {{ o }} así que por su ejemplo, usted podría usar:

string t = "1, 2, 3";
string v = String.Format(" foo {{{0}}}", t);

18voto

elec Puntos 121

Usted puede utilizar el doble corchetes de apertura y doble cierre de corchetes que solo muestra un soporte en su página.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X