2011-09-20 9 views
31

कहें कि डीबगिंग उद्देश्यों के लिए, मैं प्रत्येक स्ट्रिंग आइटम अल्पविराम से अलग होने के साथ एक लाइन स्ट्रिंग में एक आईनेमरेबल की सामग्री को जल्दी से प्राप्त करना चाहता हूं। मैं इसे एक फॉरेच लूप के साथ एक सहायक विधि में कर सकता हूं, लेकिन यह न तो मजेदार और न ही संक्षिप्त है। क्या लिंक इस्तेमाल किया जा सकता है? कुछ अन्य शॉर्ट-आश रास्ता?एक अल्पविराम से अलग स्ट्रिंग में IENumerable <string> को कैसे परिवर्तित करें?

+1

संभावित ड्रिपलेट [स्ट्रिंग करने के लिए IENumerable] (http://stackoverflow.com/questions/3414263/ienumerable-to-string) –

उत्तर

62
using System; 
using System.Collections.Generic; 
using System.Linq; 

class C 
{ 
    public static void Main() 
    { 
     var a = new []{ 
      "First", "Second", "Third" 
     }; 

     System.Console.Write(string.Join(",", a)); 

    } 
} 
6
collection.Aggregate("", (str, obj) => str + obj.ToString() + ","); 
23
string output = String.Join(",", yourEnumerable); 

String.Join Method (String, IEnumerable

concatenates प्रकार स्ट्रिंग के निर्माण IEnumerable संग्रह के सदस्यों, प्रत्येक सदस्य के बीच निर्दिष्ट विभाजक का उपयोग कर।

3
IEnumerable<string> foo = 
var result = string.Join(",", foo); 
+0

क्यों। ToArray()? –

+0

मेरी गलती, मैंने जवाब संपादित किया है। –

+1

स्ट्रिंग.जॉइन के अंत में .toArray() .NET <4 – UNeverNo

1

एक स्ट्रिंग के लिए तार की बड़ी सरणी शामिल होने के लिए, का उपयोग नहीं करते सीधे +, एक के बाद एक, या एक शॉट में String.Join दोहराने में StringBuilder का उपयोग करें।

+0

ओटी के लिए आवश्यक है: 3 ऑपरेटरों के संयोजन के लिए कंपाइलर उन परिचालनों को स्ट्रिंग के एक कॉल में बदल देगा। विधि को 3 पैरामीटर लेना। तो 3 से अधिक संचालन के साथ, स्ट्रिंगबिल्डर काम में आते हैं। –

संबंधित मुद्दे