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

4007 visitas.

Deja una respuesta

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