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

C# में System.String या System.Text.StringBuilder में से कौन बेहतर है?


मुख्य अंतर यह है कि StringBuilder म्यूटेबल (परिवर्तनीय) है जबकि String इम्यूटेबल (अपरिवर्तनीय) है।

String इम्यूटेबल है, इम्यूटेबल का अर्थ है कि यदि आप स्ट्रिंग ऑब्जेक्ट बनाते हैं तो आप इसे संशोधित नहीं कर सकते और यह हमेशा मेमोरी में स्ट्रिंग प्रकार का नया ऑब्जेक्ट बनाता है।

दूसरी ओर, StringBuilder म्यूटेबल है। मतलब, यदि हम एक स्ट्रिंग बिल्डर ऑब्जेक्ट बनाते हैं तो हम इन्सर्ट, रिप्लेस या अपेंड जैसे किसी भी ऑपरेशन को हर बार नया इंस्टेंस बनाए बिना कर सकते हैं। यह मेमोरी में एक ही स्थान पर स्ट्रिंग को अपडेट करता है और मेमोरी में नई जगह नहीं बनाता।

उदाहरण

using System; 
using System.Text; 
class DemoApplication{ 
    public static void Main(String[] args){ 
        String systemString = "Hello"; 
        StringConcat(systemString); 
        Console.WriteLine("String Class Result: " + systemString); 
        StringBuilder stringBuilderString = new StringBuilder("Hello"); 
        StringBuilderConcat(stringBuilderString); 
        Console.WriteLine("StringBuilder Class Result: " + stringBuilderString); 
    } 
    public static void StringConcat(String systemString){ 
        String appendString = " World"; 
        systemString = String.Concat(systemString, appendString); 
    } 
    public static void StringBuilderConcat(StringBuilder stringBuilderString){ 
        stringBuilderString.Append(" World"); 
    } 
}

आउटपुट

उपरोक्त उदाहरण का आउटपुट निम्नानुसार है:

String Class Result: Hello 
StringBuilder Class Result: Hello World
  • StringConcat मेथड का उपयोग: इस मेथड में, हम "Hello" स्ट्रिंग पास कर रहे हैं और "systemString = String.Concat(systemString, appendString);" कर रहे हैं जहां appendString " World" है जिसे जोड़ा जाना है। Main() से पास की गई स्ट्रिंग नहीं बदली जाती, यह इस तथ्य के कारण है कि String इम्यूटेबल है। स्ट्रिंग का मान बदलने से एक और ऑब्जेक्ट बनता है और StringConcat() में systemString नई स्ट्रिंग का रेफरेंस स्टोर करता है। लेकिन Main() और StringConcat() में systemString रेफरेंस अलग-अलग स्ट्रिंग्स को संदर्भित करते हैं।

  • StringBuilderConcat मेथड का उपयोग: इस मेथड में, हम "Hello" स्ट्रिंग पास कर रहे हैं और "stringBuilderString.Append(" World");" कर रहे हैं जो Main में स्ट्रिंग के वास्तविक मान को "Hello World" में बदल देता है। यह इस साधारण तथ्य के कारण है कि StringBuilder म्यूटेबल है और इसलिए अपना मान बदलता है।


  1. Linux Mint बनाम Ubuntu: कौन सा बेहतर है? Linux Mint बनाम Ubuntu: कौन सा बेहतर है?

    बाज़ार में कई Linux वितरण (डिस्ट्रो) मौजूद हैं, जिनमें से प्रत्येक का अपना विशेष फोकस या स्वाद होता है। कुछ Linux डिस्ट्रो सुरक्षा परीक्षण पर केंद्रित होते हैं, तो कुछ गेमिंग के लिए बने होते हैं। आप जो भी डिस्ट्रो चुनें, सबसे अच्छे Linux डिस्ट्रो वही हैं जो हर काम के लिए उपयुक्त हों, जैसे Debian, Fe

  1. लैपटॉप बनाम डेस्कटॉप – कौन सा बेहतर है? लैपटॉप बनाम डेस्कटॉप – कौन सा बेहतर है?

    लैपटॉप बनाम डेस्कटॉप एक ऐसी लड़ाई है जो बहुत से लोगों को उत्साहित करती है, कई डेस्कटॉप पर बहुत पैसा खर्च करने को लेकर संशय में हैं और कई भ्रमित हैं कि क्या लैपटॉप उनकी जरूरतों को पूरा कर सकता है। तो, इस लेख में, हम देखेंगे कि आपके लिए कौन सा बेहतर है, एक लैपटॉप या एक डेस्कटॉप। लैपटॉप बनाम डेस्कटॉप

  1. एंड्रॉइड टीवी बनाम रोकू टीवी: कौन सा स्मार्ट टीवी प्लेटफॉर्म अधिक मूल्य प्रदान करता है? एंड्रॉइड टीवी बनाम रोकू टीवी: कौन सा स्मार्ट टीवी प्लेटफॉर्म अधिक मूल्य प्रदान करता है?

    एंड्रॉइड टीवी और रोकू टीवी मूल रूप से एक ही काम करते हैं, लेकिन उनका उपयोग उपयोगकर्ताओं के अनुसार भिन्न होगा। रोकू टीवी बिना किसी पूर्व तकनीकी ज्ञान वाले लोगों के लिए अधिक उपयुक्त है। दूसरी ओर, एंड्रॉइड टीवी उत्साही गेमर्स और भारी उपयोगकर्ताओं के लिए बेहतर विकल्प है। तो, यदि आप तुलना खोज रहे हैं: