Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में String बनाम StringBuilder: अंतर


स्ट्रिंग मैनिपुलेशन में सही चुनाव प्रदर्शन पर बड़ा प्रभाव डालता है।

String (इम्यूटेबल)

  • बनने के बाद **नहीं बदल सकती**।
  • हर ऑपरेशन (+, Replace, Substring) **नई स्ट्रिंग** बनाता है।
  • मेमोरी में नया ऑब्जेक्ट, पुराना गार्बेज कलेक्शन के लिए।
  • थ्रेड-सेफ (इम्यूटेबिलिटी के कारण)।
string str = "Welcome!";
str += "Hello";      // नई स्ट्रिंग
str += "World";      // फिर नई स्ट्रिंग
// 3 स्ट्रिंग ऑब्जेक्ट्स बने

StringBuilder (म्यूटेबल)

  • **बदली जा सकती है** - आंतरिक बफर संशोधित होता है।
  • नया ऑब्जेक्ट **नहीं** बनाता (बफर भरने तक)।
  • बड़े/बार-बार संशोधन के लिए कुशल।
  • थ्रेड-सेफ **नहीं**।
StringBuilder sb = new StringBuilder("Welcome!");
sb.Append("Hello");
sb.Append("World");
string result = sb.ToString(); // अंत में एक बार कनवर्ट

तुलना तालिका

विशेषताStringStringBuilder
म्यूटेबिलिटीइम्यूटेबलम्यूटेबल
प्रदर्शन (कई संशोधन)खराब (O(n²))अच्छा (O(n))
मेमोरी आवंटनहर ऑपरेशन परबफर विस्तार पर
थ्रेड सेफ्टीहाँनहीं
उपयोगकम संशोधन, कुंजियाँ, स्थिर टेक्स्टलूप में बिल्डिंग, बड़ी स्ट्रिंग्स

कब क्या उपयोग करें?

  • String: सरल कॉनकैट (2-3), इंटरपोलेशन $"...", कुंजियाँ, कॉन्स्टेंट्स।
  • StringBuilder: लूप में स्ट्रिंग बिल्डिंग, फाइल/नेटवर्क स्ट्रीम कंस्ट्रक्शन, बड़े टेक्स्ट प्रोसेसिंग।
  • क्षमता सेट करें: new StringBuilder(1000) रीअलोकेशन कम करता है।
  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व

  1. - Java में StringBuffer और StringBuilder के बीच अंतर

    StringBuffer और StringBuilder दोनों म्यूटेबल क्लास हैं जिनका उपयोग स्ट्रिंग ऑब्जेक्ट पर ऑपरेशन करने के लिए किया जा सकता है जैसे स्ट्रिंग का रिवर्स, स्ट्रिंग को जोड़ना आदि। हम स्ट्रिंग का नया ऑब्जेक्ट बनाए बिना स्ट्रिंग को मॉडिफाई कर सकते हैं। StringBuffer थ्रेड-सेफ है जबकि StringBuilder थ्रेड-सेफ न

  1. - Python में String और Byte String में क्या Difference है?

    String vs Byte String एक String Characters का Sequence होता है; ये एक Abstract Concept हैं और इन्हें Directly Disk पर Store नहीं किया जा सकता। एक Byte String Bytes का Sequence होती है - ऐसी चीजें जो Disk पर Store की जा सकती हैं। इनके बीच Mapping को Encoding कहते हैं - इनमें से काफी सारे हैं (और अनं