2011-08-18 19 views
22

Olası Çoğalt:
Escape curly brace '{' in String.FormatC# String.Format

C# fişlerle bir dize ancak takmadan params biçimlendirmek için izin veren bir String.Format yöntemini vardır {0}

Dizede olması için küme parantezleri gerektiren basit bir json dizesi oluşturmaya çalışıyorum ve

benim dize yanlış biçimlendirilmiş söyleyen bir istisna atar yardım etmedi parantez önce bir kaçış ekleme biçimlendirici

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

, herkes bu etrafında nasıl biliyor kırma?

+0

veya üstü, bunu yapabilirsiniz {Kıvırcık} ... ; \t string larry = "Larry"; \t string curly = "{Curly}"; \t string results = $ "1: {moe} 2: {larry} 3: {curly}"; – rwg

cevap

44

Sen biçim dizeleri onları katına tarafından parantez kaçabilir: Sadece bir küme ayracı kaçmak için {{ veya }} kullanabilirsiniz

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

.

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

üretir:

Moe, Larry \t dize moe = "Moe" Framework 4.6 olarak

+5

Diş teli üzerinde üçe katlamaya dikkat etmeniz gerekir ... bu durumda işe yarar, fakat genel olarak ayrıştırıcı bunu '{{{' veya '}}}' olarak görür. Ayraçın kendisi olan bir {3} oluşturmak daha iyi olabilir –

İlgili konular