Vamos a explicar como escapar llaves en String.Format con C#.
Una función que solemos usar a menudo es String.Format, para darle formato a cadenas y meter valores de forma ordenada dentro de un String. Estos valores se pasan como parámetro a la función, siguiendo el orden designado y la función de ,NET los sustituye dentro de la cadena según encuentre dicho orden numérico dentro de llaves: {0}{1}…{n}.
Ejemplo:
string resultado = String.Format("Nombre: {0}", "Pablo");
Devolverá: «Nombre: Pablo»
Pero si queremos meter llaves (curly braces en inglés) dentro de la cadena final, la función se vuelve problemática, y al hacer cosas como esta:
string resultado = String.Format("{Nombre: {0}}", "Pablo");
Esperamos obtener este resultado: «{Nombre: Pablo}», pero sin embargo lo que obtenemos es una excepción del tipo:
System.FormatException: La cadena de entrada no tiene el formato correcto.
Escapar llaves en String.Format con C#
La solución es es poner 2 llaves cuando queramos que salga una, esta en la manera de «escaparlas».
De forma que si ponemos «{{» obtendremos «{«, y de igual manera «}}» será «}».
Ejemplo:
string dias = "1, 15, 22"; string resultado = String.Format("{{dias festivos: {0}}}", dias);
4007 visitas.