जवाबों:
string mystr = string.Format("This is {0}overflow", strVar);
और आप अनुक्रमित के बजाय नामित मापदंडों का भी उपयोग कर सकते हैं ।
इसे C # 6.0 (Visual Studio 2015+) के रूप में जोड़ा गया है।
उदाहरण:
var planetName = "Bob";
var myName = "Ford";
var formattedStr = $"Hello planet {planetName}, my name is {myName}!";
// formattedStr should be "Hello planet Bob, my name is Ford!"
इस के लिए सिंथेटिक चीनी है:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
अतिरिक्त संसाधन:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
आप string.Format
मानों को स्ट्रिंग्स में छोड़ने के लिए उपयोग कर सकते हैं :
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
एक विकल्प C # संघनन ऑपरेटर का उपयोग करना है:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
यदि आप बहुत अधिक संघटन कर रहे हैं तो उस StringBuilder
वर्ग का उपयोग करें जो अधिक कुशल है:
var strVar = "stack";
var stringBuilder = new StringBuilder("This is ");
for (;;)
{
stringBuilder.Append(strVar); // spot the deliberate mistake ;-)
}
stringBuilder.Append("overflow");
var myStr = stringBuilder.ToString();
सी # 6.0
string mystr = $"This is {strVar}overflow";
उसके लिए कोई ऑपरेटर नहीं है। आपको उपयोग करने की आवश्यकता है string.Format
।
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
दुर्भाग्य string.Format
से एक स्थिर विधि है, इसलिए आप बस नहीं लिख सकते "This is {0}soverflow".Format(strVar)
। कुछ लोगों ने एक विस्तार विधि को परिभाषित किया है, जो इस वाक्यविन्यास को अनुमति देता है।
उपयोग करें string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
आपको उपयोग करना चाहिए String.Format()
। सिंटैक्स थोड़ा अलग है, इसके बजाय संख्यात्मक प्लेसहोल्डर का उपयोग किया जाता है।
उदाहरण:
String.Format("item {0}, item {1}", "one", "two")
अच्छी तरह से देखिए अधिक जानकारी के लिए http://msdn.microsoft.com/en-us/library/system.string.format.aspx ।
आपके पास 2 विकल्प हैं। आप या तो String.Format का उपयोग कर सकते हैं या आप concatenation ऑपरेटर का उपयोग कर सकते हैं।
String newString = String.Format("I inserted this string {0} into this one", oldstring);
या
String newString = "I inserted this string " + oldstring + " into this one";
String.Format()
StringBuilder का उपयोग करता है। StringBuilder आमतौर पर बहुत अधिक कुशल होती है जब बहुत सारे तार को समाप्त किया जाता है लेकिन संघनन संचालक एक बंद के लिए एकदम सही होता है। String.Format()
जब प्रारूपण को आउटपुट पर लागू करने की आवश्यकता होती है, तो संख्यात्मक मानों के लिए पैडिंग या अग्रणी शून्य जोड़ने के लिए उपयोगी है। इसलिए String.Format()
एक लूप में उपयोग करने से संभावित रूप से बहुत सारे स्ट्रिंगरबिल्डर्स को तुरंत मिल जाएगा। उस स्थिति में लूप के बाहर और लूप के AppendFormat()
अंदर घोषित एकल स्ट्रिंगबेल्ट का उपयोग करना बेहतर होता है ।
स्ट्रिंग के साथ प्लेसहोल्डर्स को लागू करने का एक और तरीका है। प्लेस, कुछ स्थितियों में अजीब तरह से मदद करता है:
mystr = mystr.Replace("%soverflow", strVar);
आप निम्न तरीके का उपयोग कर सकते हैं
स्ट्रिंग इंटरपोलेशन
$ विशेष चरित्र एक स्ट्रिंग शाब्दिक को एक प्रक्षेपित स्ट्रिंग के रूप में पहचानता है। जैसे
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
एक प्रक्षेपित स्ट्रिंग एक स्ट्रिंग शाब्दिक है जिसमें प्रक्षेपित भाव हो सकते हैं। जब एक प्रक्षेपित स्ट्रिंग को परिणाम स्ट्रिंग में हल किया जाता है, तो प्रक्षेपित अभिव्यक्तियों के साथ आइटम को अभिव्यक्ति परिणामों के स्ट्रिंग प्रतिनिधित्व द्वारा प्रतिस्थापित किया जाता है।
String.Format
स्ट्रिंग का उपयोग करें। यदि आपको किसी ऑब्जेक्ट के मूल्य, चर या अभिव्यक्ति को किसी अन्य स्ट्रिंग में डालने की आवश्यकता है
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
आप इसे विस्तारक के साथ पूरा कर सकते हैं: https://github.com/anderly/Expansive