2009-08-20 31 views
38

में एक समेकित स्ट्रिंग में कनवर्ट करें क्या स्ट्रिंग सरणी को एक समेकित स्ट्रिंग में कनवर्ट करने का कोई आसान तरीका है?एक स्ट्रिंग सरणी को C#

उदाहरण के लिए, मैं एक स्ट्रिंग सरणी है:

new string[]{"Apples", "Bananas", "Cherries"}; 

और मैं एक एकल स्ट्रिंग प्राप्त करना चाहते हैं:

"Apples,Bananas,Cherries" 

या "Apples&Bananas&Cherries" या "Apples\Bananas\Cherries"

उत्तर

70

एक साधारण से एक है ...

string[] theArray = new string[]{"Apples", "Bananas", "Cherries"}; 
string s = string.Join(",",theArray); 
+5

हे, मैं वास्तव में जानता था। आज कार्यालय में यह बहुत गर्म है और मेरे पास कॉफी नहीं है! धन्यवाद। –

+1

हालांकि यह थोड़ा अजीब लगता है। ऐसा लगता है कि यह एक स्ट्रिंग पर एक क्रिया की तुलना में सरणी पर अधिक कार्रवाई है, इसलिए मेरे लिए सरणी वर्ग में ऐसे फ़ंक्शन को देखने के लिए और अधिक "प्राकृतिक" होगा। लेकिन धन्यवाद, मुझे नहीं पता था कि स्ट्रिंग में शामिल होने का ऐसा तरीका था [] (इसलिए निर्माण के लिए और नहीं)! +1 – Gertjan

+1

लेकिन यह केवल 'स्ट्रिंग []' पर लागू होगा, किसी अन्य के लिए नहीं - इसलिए यह "नियमित" सरणी कार्यान्वयन में स्पष्ट रूप से फिट नहीं होता है। लेकिन आप इसे इस स्ट्रिंग [] 'में सी # 3.0 * एक्सटेंशन विधि * के रूप में जोड़ सकते हैं। –

10

स्पष्ट choise निश्चित रूप से String.Join विधि है।

यहाँ एक LINQy विकल्प है:

string.Concat(fruit.Select((s, i) => (i == 0 ? "" : ",") + s).ToArray()) 

(वास्तव में नहीं उपयोगी के रूप में यह खड़ा के रूप में यह एक ही शामिल हों विधि के रूप में, लेकिन शायद, जहां विधि नहीं जा सकते विस्तार हो रहा बारी विभाजक की तरह के लिए करता है .. ।)

0

आप Aggregate का उपयोग कर सकते हैं, यह अनुक्रम पर एक संचयक कार्य लागू करता है।

string[] test = new string[]{"Apples", "Bananas", "Cherries"}; 
char delemeter = ','; 
string joinedString = test.Aggregate((prev, current) => prev + delemeter + current); 
संबंधित मुद्दे