2011-08-18 14 views
22

संभव डुप्लिकेट:
Escape curly brace '{' in String.Formatसी # String.Format

ग # एक String.Format विधि है कि आप टोकन के साथ एक स्ट्रिंग लेकिन डालने पैरामीटर फ़ॉर्मेट करने के लिए अनुमति देता है {0}{1}

मैं एक साधारण जेसन स्ट्रिंग बनाने की कोशिश कर रहा हूं जिसके लिए स्ट्रिंग में घुंघराले ब्रैकेट की आवश्यकता होती है, और इसलिए यह है फ़ॉर्मेटर

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

ब्रेसिज़ से पहले एक भागने में मदद नहीं की

कह मेरी स्ट्रिंग प्रारूप गलत होता है एक अपवाद फेंकता जोड़ा जा रहा है, किसी को पता यह चारों ओर पाने के लिए तोड़ने?

+0

फ्रेमवर्क 4.6 में या अधिक, आप यह कर सकते हैं ... \t स्ट्रिंग मो = "मो"; \t स्ट्रिंग लैरी = "लैरी"; \t स्ट्रिंग घुंघराले = "{घुंघराले}"; \t स्ट्रिंग परिणाम = $ "1: {moe} 2: {larry} 3: {curly}"; – rwg

उत्तर

44

आप अपने प्रारूप तार में उन्हें दोगुना होकर ब्रेसिज़ बच सकते हैं:

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

आप बस एक घुंघराले ब्रेस से बचने के लिए {{ या }} उपयोग कर सकते हैं।

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

पैदा करता है:

मो, लैरी, {} घुंघराले

+5

आपको ब्रेसिज़ पर तीन गुना करने के बारे में सावधान रहना होगा ... इस मामले में यह काम करता है, लेकिन सामान्य रूप से, क्या पार्सर इसे '{{{' या '}}}' के रूप में देखता है। एक {3} बनाने के लिए बेहतर हो सकता है जो ब्रेस स्वयं है –

संबंधित मुद्दे