लेकिन अगर मैं 2 तार concatinate चाहते हैं, तो मुझे लगता है कि यह बेहतर (तेज) करना है यह स्ट्रिंगबिल्डर के बिना। क्या ये सही है?
कि वास्तव में सही है, तो आप पा सकते हैं क्यों बिल्कुल पर बहुत अच्छी तरह से समझाया,
http://www.yoda.arachsys.com/csharp/stringbuilder.html
अभिव्यक्त किया है: अगर आप की तरह
var result = a + " " + b + " " + c + ..
एक ही बार में तार concatinate कर सकते हैं स्ट्रिंगबिल्डर के बिना बेहतर है केवल प्रतिलिपि बनाने के लिए (परिणामस्वरूप स्ट्रिंग की लंबाई पहले से गणना की जाती है);
structurs लिए
तरह
var result = a;
result += " ";
result += b;
result += " ";
result += c;
..
नई वस्तुओं हर बार बनाई गई हैं, इसलिए वहां आपके StringBuilder विचार करना चाहिए।
अंत लेख अंगूठे का इन नियमों का सार पर:
अंगूठे
तो के
नियम, जब आप StringBuilder, का उपयोग करना चाहिए और जब आप स्ट्रिंग संयोजन ऑपरेटरों इस्तेमाल करना चाहिए?
निश्चित रूप से StringBuilder का उपयोग करते हैं आप एक गैर तुच्छ पाश में श्रृंखलाबद्ध रहे हैं - खासकर यदि आप (संकलन समय पर) यकीन है कि के लिए पता नहीं है कि कितने पुनरावृत्तियों आप के माध्यम से बनाती हूँ पाश। उदाहरण के लिए, एक फ़ाइल को वर्ण एक समय में पढ़ना, स्ट्रिंग का निर्माण करना जब आप + = ऑपरेटर का उपयोग करते हैं तो संभावित रूप से प्रदर्शन आत्महत्या होती है।
निश्चित रूप से संयोजन ऑपरेटर जब आप कर सकते हैं (readably) सब कुछ जो एक बयान में श्रेणीबद्ध होने की जरूरत है निर्दिष्ट का उपयोग करें। (आप CONCATENATE के लिए चीजों की एक सरणी है हैं, तो String.Concat स्पष्ट रूप से बुला पर विचार -। या String.Join अगर आप परिसीमक जरूरत है)
कई में शाब्दिक तोड़ने के लिए डरो मत concatenated बिट्स - परिणाम वही होगा। उदाहरण के लिए प्रदर्शन के लिए कोई नुकसान नहीं होने के कारण, आप लंबी अवधि के को कई पंक्तियों में तोड़कर पठनीयता की सहायता कर सकते हैं।
आप कुछ संयोजन की अगले चरण खिला के अलावा अन्य के लिए संयोजन की मध्यवर्ती परिणाम की जरूरत है, StringBuilder आपकी सहायता करने वाला नहीं है। उदाहरण के लिए, यदि आप पहले नाम और अंतिम नाम से एक पूर्ण नाम बनाते हैं, और फिर जानकारी के तीसरे भाग ( उपनाम, शायद) अंत में जोड़ें, तो आप केवल स्ट्रिंगबिल्डर का उपयोग करने से लाभ लेंगे यदि आपको अन्य उद्देश्य के लिए स्ट्रिंग (पहले नाम + अंतिम नाम) स्ट्रिंग की आवश्यकता नहीं है (जैसा कि हम उदाहरण में करते हैं जो एक व्यक्ति ऑब्जेक्ट बनाता है)।
आप बस कुछ concatenations क्या करना है, और तुम सच में अलग बयानों में उन्हें क्या करना चाहते हैं, तो यह नहीं वास्तव में ऐसा मामला है जिस तरह से आप जाना है। कौन सा रास्ता पर concatenations आकार स्ट्रिंग के शामिल की संख्या, और किस क्रम वे में श्रेणीबद्ध कर रहे हैं निर्भर करेगा और अधिक कुशल है। क्या तुम सच में लगता है कि कोड के उस टुकड़े एक प्रदर्शन टोंटी, प्रोफ़ाइल या होने के लिए दोनों तरीकों से बेंचमार्क करें।
मेरा मानना है कि यह पहले से कवर किया गया है। –
कई बार –
संभावित डुप्लीकेट: http://stackoverflow.com/questions/529999, http://stackoverflow.com/questions/550702, http://stackoverflow.com/questions/1612797, http: // stackoverflow। कॉम/प्रश्न/21078, http://stackoverflow.com/questions/73883, –