2009-10-07 22 views

cevap

16
IList<int> list = new List<int>(new int[] { 1, 2, 3 }); 
    Console.WriteLine(string.Join(",", list.Select(i => i.ToString()).ToArray())); 
+0

Çalışmıyor. ForEach(), IList değil, Listesinde tanımlanmıştır. –

+0

Bu benim hatam oldu, düzeltildi –

+0

Yine de yanlıştı, neden ForEach yazdım emin değilim ... –

5

Sen yapabilirsiniz:

// Given: IList<int> collection; 

string commaSeparatedInts = string.Join(",",collection.Select(i => i.ToString()).ToArray()); 
3

Bu, ona

IList<int> strings = new List<int>(new int[] { 1,2,3,4 }); 
string[] myStrings = strings.Select(s => s.ToString()).ToArray(); 
string joined = string.Join(",", myStrings); 

yapacak VEYA tamamen Linq ile

string aggr = strings.Select(s=> s.ToString()).Aggregate((agg, item) => agg + "," + item); 
3
// list = IList<MyObject> 

var strBuilder = new System.Text.StringBuilder(); 

foreach(var obj in list) 
{ 
    strBuilder.Append(obj.ToString()); 
    strBuilder.Append(","); 
} 

strBuilder = strBuilder.SubString(0, strBuilder.Length -1); 
return strBuilder.ToString(); 
+1

İyi bir seçim, her zaman StringBuilder'i bir araya getirme konusunda çok daha hızlı buldum. Özellikle listenin boyutu BÜYÜK ise faydalıdır! –

+0

StringBuilder.SubString yok, ne istiyorsun StringBuilder.ToString (int startIndex, int uzunluk) – Trillian

0
List<int> intList = new List<int>{1,234,2,324,324,2}; 
var str = intList.Select(i => i.ToString()).Aggregate((i1,i2) => string.Format("{0},{1}",i1,i2)); 
Console.WriteLine(str); 
+0

Bir cevap veren kişi oylama neden oy verildiğine dair bir yorum bırakırsa yararlı olur. Bu, soruna mükemmel bir çözüm! –

+0

Evet, meşru, bunu yapmanın en basit yolu değil. Sıralama sistemi, en iyi cevapları almakla ilgilidir. –

+0

Bir cevabın sadece yanlış, yanlış veya ayrıntı içermiyorsa oylanacağını düşünürdüm. Burada LINQ kullanarak gönderilen cevapların çoğu mutlaka "basit" değil! –

0

mstrickland çünkü büyük listeleri ile hızı dize oluşturucu kullanarak iyi bir fikri vardır. Ancak, bir stringbuilder dizesi olarak ayarlayamazsınız. Bunun yerine deneyin.

var strBuilder = new StringBuilder(); 

    foreach (var obj in list) 
    { 
     strBuilder.Append(obj.ToString()); 
     strBuilder.Append(","); 
    } 

    return strBuilder.ToString(0, strBuilder.Length - 1); 
İlgili konular