2008-12-19 17 views
43

this question tam kopyasıyla kapatılmıştır.Diziyi bir dizgeye dönüştürmek için en kısa yol C#/LINQ

Öğelerim/öğelerim var. Özel bir sınırlayıcı ile ayrılmış bir dizeye dönüştürmek istiyorum. Örneğin:

C# bunu yapmanın en kısa/esiest yolu nedir
[1,2,3,4,5] => "1,2,3,4,5" 

?

Bunu her zaman listeyi bisiklete alarak ve mevcut öğeyi ayırıcıyı eklemeden önce sonuncu olup olmadığını kontrol ederek yaptım.

for(int i=0; i<arr.Length; ++i) 
{ 
    str += arr[i].ToString(); 
    if(i<arr.Length) 
     str += ","; 
} 

Daha az kod yazmama yardımcı olabilecek bir LINQ işlevi var mı?

cevap

134
String.Join(",", arr.Select(p=>p.ToString()).ToArray()) 
+6

Aslında ToArray (...) string.join bir IEnumerable alabilir gerekmez ve IEnumerable.Select bir IEnumerable döndürür. – neminem

+7

@neminem 'string.Join (string, IEnumerable )' 2008'de yoktu. –

36
String.Join(",", array.Select(o => o.ToString()).ToArray()); 
İlgili konular