Question

I have already seen from other answers that to escape the { or } char in C# string.Format() you use {{ or }}.

But what I need to do is format a string that looks like this:

{{tag}}

However, when I try to escape the double curly braces like this:

string.Format("{{{0}}}", "tag");

or this:

string.Format("{{{{{0}}}}}", "tag");

The output is always this:

{tag}

A different way I have found that works is:

StringBuilder output = new StringBuilder();

output.Append("{{");
output.Append("tag");
output.Append("}}");

But it seems silly to have to have all that just to format a string.

Am I missing something obvious?

Was it helpful?

Solution

In order to do this you need 5 braces on either side of the expression

Console.WriteLine("{{{{{0}}}}}", "tag");

The break down is

  • 2 for the first {
  • 2 for the second {
  • 1 for the first { in {0}

OTHER TIPS

You can use code this way.

string.Format("{0}{1}{2}", "{{","tag","}}");
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top