स्ट्रिंग सरणी को स्ट्रिंग में बदलें


155

मैं एक स्ट्रिंग सरणी को सिंगल स्ट्रिंग में बदलना चाहूंगा।

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

मैं "हैलो वर्ल्ड!" जैसा कुछ करना चाहूंगा।

जवाबों:


280
string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string.Join("", test);

3
+1 - मैंने इसे सही करने के लिए Join में स्पेस को हटा दिया, जैसा कि @davidg
jmort253

धन्यवाद। मैंने अनुगामी स्थान को नोटिस नहीं किया, भले ही मैंने इसे अपने उत्तर में चिपका दिया हो।
डेव वार्ड

2
मुझे अपने स्ट्रिंग्स (कोमा और स्पेस) के बीच एक विभाजक लगाने की भी आवश्यकता थी, इसलिए मैंने इस्तेमाल किया: var separator = ", "; string.Join(separator , test);
drpawelo

5
बहुत बढ़िया जवाब। हालांकि, मैं string.Join(string.Empty, test)एक का उपयोग करने के बजाय उपयोग करने का सुझाव दूंगा empty-paranthesis
अब वह जिसका नाम नहीं होना चाहिए।

37

विधि के पहले से उल्लेखित उपयोग का उपयोग करने की तुलना में थोड़ा तेज विकल्प कॉनैट () विधि है। यह एक खाली सीमांकक पैरामीटर की आवश्यकता नहीं है। उदाहरण:Join()Join()

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";

string result = String.Concat(test);

इसलिए यह तेजी से होने की संभावना है।


1
Concatबेहतर है, के आंतरिक कोड में Join, यह प्रत्येक आइटम के बाद विभाजक को जोड़ देगा। लेकिन Concatऐसे कोड नहीं हैं, यह सरल और अधिक प्रत्यक्ष है Join। यह सबसे फिट उत्तर है।
स्क्विरल

22

प्रयत्न:

String.Join("", test);

जो दो तत्वों को एक साथ जोड़कर एक स्ट्रिंग लौटाए। ""इंगित करता है कि आप चाहते हैं कि तार बिना किसी विभाजक के एक साथ जुड़ जाएं।


कि "HelloWorld!" शब्दों के बीच एक स्थान के बिना?
jmort253

1
@ jmort253 - "Hello "प्रश्न में मूल स्ट्रिंग में पहले से ही एक अनुगामी स्थान था। यदि अंतरिक्ष पहले से ही नहीं था, तो आप सही होंगे, और " "एक विभाजक के रूप में उपयोग करने से अधिक समझ में आएगा।
दाविदग

19

एक साधारण स्ट्रिंग। कॉनकैट () जो आपको चाहिए।

string[] test = new string[2];

test[0] = "Hello ";
test[1] = "World!";

string result = string.Concat(test);

यदि आपको एक सेपरेटर (स्थान, अल्पविराम आदि) जोड़ने की आवश्यकता है, तो string.Join () का उपयोग किया जाना चाहिए।

string[] test = new string[2];

test[0] = "Red";
test[1] = "Blue";

string result = string.Join(",", test);

यदि आपको स्ट्रिंग के बजाय तत्वों की गड़गड़ाहट के साथ एक स्ट्रिंग सरणी पर यह प्रदर्शन करना है। जॉइन्ट () प्रदर्शन के दृष्टिकोण से बेहतर है। सेपरेटर के रूप में बस एक "" (रिक्त) तर्क दें। StringBuilder का उपयोग प्रदर्शन के लिए भी किया जा सकता है, लेकिन यह कोड को थोड़ा लंबा कर देगा।


Concatऔर अगर आपके पास 4 या उससे कम तार हैं Join, StringBuilderतो आप तेजी से बढ़ सकते हैं।
गुणवत्ता कैटेलिस्ट

3

Aggregate उसी के लिए भी इस्तेमाल किया जा सकता है।

string[] test = new string[2];
test[0] = "Hello ";
test[1] = "World!";
string joinedString = test.Aggregate((prev, current) => prev + " " + current);

1
String.Joinकई अतिरिक्त तारों के निर्माण के कारण यह लागू करने के लिए बेहद बेकार तरीका है । कृपया उचित संस्करण के लिए stackoverflow.com/questions/217805/… पढ़ें Aggregate
अलेक्सई लेवेनकोव

1
    string ConvertStringArrayToString(string[] array)
    {
        //
        // Concatenate all the elements into a StringBuilder.
        //
        StringBuilder strinbuilder = new StringBuilder();
        foreach (string value in array)
        {
            strinbuilder.Append(value);
            strinbuilder.Append(' ');
        }
        return strinbuilder.ToString();
    }

3
यह सिर्फ मैन्युअल रूप से लागू हो रहा है string.Join(" ", array)(आपके अलावा एक अनुगामी स्थान जोड़ता है)। पुस्तकालय में सिर्फ एक का उपयोग क्यों नहीं?
दाविदग

1
@ दाविद - अश्विनी शायद नए हैं। मौजूदा साधनों का उपयोग करना सीखना और "मैं इसे स्वयं करना चाहिए" कॉलेज की मानसिकता को कुछ आदत लग जाती है। इसने मेरे लिए किया। आखिरकार, लोगों को आश्चर्य होता है कि उनके सहकर्मी उनके चारों ओर हलकों को कोड करने में सक्षम क्यों हैं, और फिर वे कोड पुस्तकालयों में मूल्य देखते हैं और पुन: उपयोग करते हैं।
jmort253

मुझे जो कुछ भी याद है, मैंने उसकी मदद करने की कोशिश की है..यदि किसी के पास कोई बेहतर उपाय है कि आप उसे पोस्ट करने के लिए हमेशा स्वतंत्र रहें .. @jortort: ​​मुझे काम करते हुए 4 साल हो गए हैं ... मेरे पास व्हाट्सएप की मानसिकता नहीं है उर बात कर रहे हैं ... कोई भी सही नहीं है ... अनुभव के वर्षों में आप सीखते हैं .. आप इस तथ्य से इनकार नहीं करेंगे ..
प्रोग्रामर

@ अश्विनी - आपको नाराज करने की कोशिश नहीं कर रहा था। बस विभिन्न इंजीनियरों के साथ काम करने के मेरे अनुभव के आधार पर @ दाविद के प्रश्न का उत्तर देना।
jmort253

2
इसके अलावा, समवर्ती स्ट्रिंग में इसके अंत में एक अतिरिक्त स्थान होगा। तो यह पूरी तरह से सवाल को पूरा नहीं करता है।
jmort253

0

मैंने अपनी परियोजना को तेज़ बनाने के लिए इस तरह का उपयोग किया:

RichTextBox rcbCatalyst = new RichTextBox()
{
    Lines = arrayString
};
string text = rcbCatalyst.Text;
rcbCatalyst.Dispose();

return text;

RichTextBox.Text स्वचालित रूप से आपके सरणी को एक बहु-स्ट्रिंग स्ट्रिंग में बदल देगा!


-1

स्वीकृत उत्तर में, String.Join इसके उपयोग के प्रति सर्वोत्तम अभ्यास नहीं है। String.Concat का उपयोग किया जाना चाहिए क्योंकि ओपी में पहले आइटम में एक अनुगामी स्थान शामिल था: "हैलो" (एक अशक्त सीमांकक का उपयोग करने के बजाय)।

हालांकि, जब से ओपी ने "हैलो वर्ल्ड!" परिणाम के लिए कहा, स्ट्रिंग। अभी भी उपयुक्त विधि है, लेकिन अनुगामी व्हाट्सएप को इसके बजाय परिसीमन में ले जाना चाहिए।

// string[] test = new string[2];

// test[0] = "Hello ";
// test[1] = "World!";

string[] test = { "Hello", "World" }; // Alternative array creation syntax 
string result = String.Join(" ", test);

-4

ऐशे ही:

string str= test[0]+test[1];

आप एक लूप का उपयोग भी कर सकते हैं:

for(int i=0; i<2; i++)
    str += test[i];
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.