तारों को समतल करने का सबसे कुशल तरीका क्या है?
String.Formatस्टेरॉयड पर पसंद है। जो, प्रदर्शन के लिहाज से, एक लाइनर की तुलना में एक छोटा सा धीमा है +और String.Concat, लेकिन उन लोगों की तुलना में बहुत बेहतर है StringBuilder, कई कॉलों की तुलना में धीमा है । व्यावहारिक रूप से, प्रदर्शन अंतर ऐसे होते हैं, अगर मुझे सहमति देने के लिए केवल एक ही रास्ता चुनना होता है, तो मैं स्ट्रिंग प्रक्षेपों का उपयोग करके चुनूंगा $... यदि दो तरीके हैं, तो StringBuilderमेरे टूलबॉक्स में जोड़ें । उन दो तरीकों से आप सेट हो गए हैं।
String.Joinनीचे इस सवाल का जवाब क्या करता है नहीं +न्याय और, है व्यावहारिक रूप से बोल रहा है, CONCATENATE तार करने के लिए एक बुरी तरह से है, लेकिन यह बुद्धिमान आश्चर्यजनक रूप से तेजी से प्रदर्शन है। जवाब क्यों दिलचस्प है। String.Concatऔर String.Joinदोनों सरणियों पर कार्य कर सकते हैं, लेकिन String.Joinवास्तव में तेज है। जाहिरा तौर पर, String.Joinबहुत परिष्कृत और String.Concatआंशिक रूप से अनुकूलित है , क्योंकि यह इसी तरह से संचालित होता StringBuilderहै कि यह पहले स्ट्रिंग की लंबाई की गणना करता है और फिर UnSafeCharBuffer का उपयोग करके इस ज्ञान से लाभ होने वाले स्ट्रिंग का निर्माण करता है।
String.Joinयह भी एक सरणी जो लगता संसाधन अक्षम सही निर्माण की आवश्यकता है? ... कि बाहर कर देता है +और String.Concatउनके घटक के लिए निर्माण सरणियों वैसे भी। नतीजतन, मैन्युअल रूप से एक सरणी बनाने और इसे खिलाने के लिए String.Joinतुलनात्मक रूप से तेज़ है ... हालांकि, StringBuilderअभी भी String.Joinहर व्यावहारिक तरीके से बेहतर प्रदर्शन करते हैं $, जबकि लंबे स्ट्रिंग्स में केवल थोड़ा धीमा और बहुत तेज़ है ... यह उल्लेख करने के लिए नहीं कि आपके पास यह उपयोग करने के लिए अजीब और बदसूरत String.Joinहै। मौके पर इसके लिए एक सरणी बनाने के लिए।