2011-08-18 16 views
22

Eventuali duplicati:
Escape curly brace '{' in String.FormatC# String.Format con Curly Bracket nella stringa

C# ha un metodo String.Format che consente di formattare una stringa, ma params inserendo con i gettoni {0}{1}

Sto provando a creare una semplice stringa json che richiede parentesi graffe nella stringa e così è rompendo il formattatore

String.Format("{ foo:'{0}', bar:'{1}' }", foo, bar); 

Aggiunta di una via di fuga prima che le parentesi non ha aiutato

genera un'eccezione dicendo che la mia stringa viene formattata in modo non corretto, qualcuno sa come ottenere intorno a questo?

+0

Nel quadro 4.6 o superiore, si può fare questo ... \t stringa Moe = "Moe"; \t string larry = "Larry"; \t string curly = "{Curly}"; \t risultati stringa = $ "1: {moe} 2: {larry} 3: {curly}"; – rwg

risposta

44

Si può sfuggire le parentesi graffe da loro raddoppio nelle stringhe di formato:

string.Format("{{ foo: '{0}', bar: '{1}' }}", foo, bar); 
11

Si può semplicemente utilizzare {{ o }} per sfuggire a una parentesi graffa.

Console.WriteLine(String.Format("{0}, {1}, {{{2}}}", "Moe", "Larry", "Curly")); 

produce:

Moe, Larry, Curly {}

+5

Devi fare attenzione a triplicare le parentesi graffe ... in questo caso funziona, ma in generale, il parser lo vede come '{{{' o '}}}'. Può essere meglio creare un {3} che è il tutore stesso –

Problemi correlati