Como escapar llaves en string.format con c#

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);

1860 visitas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *