SORU
11 Aralık 2009, Cuma


CSV dize için genel bir liste dönüştürme

Tamsayı değerler listesi (List) ve virgülle ayrılmış değerler bir dizi oluşturmak istiyorum. Bu liste tek bir virgül delimted bir liste çıktı tüm öğeleri.

Benim düşüncelerim... 1. bir yöntem listeye geçirir. 2. Kullanım listesi yineleme ve virgül eklemek için stringbuilder 3. Son karakter testi ve eğer virgül varsa, bunu silin.

Sizin düşünceleriniz nelerdir? Bu en iyi yolu nedir?

Nasıl benim kod eğer tamsayı (şimdiki planım) ama dizeler, özlem, çiftler, bools, vs, vs sadece halletmek istedim. eğer değiştirmek istiyorsunuz. gelecekte? Bu herhangi bir tür bir liste kabul ederdim.

CEVAP
11 Aralık 2009, Cuma


Çerçeve zaten bize neler katıyor.

List<int> myValues;
string csv = String.Join(",", myValues.Select(x => x.ToString()).ToArray());

Genel durum:

IEnumerable<T> myList;
string csv = String.Join(",", myList.Select(x => x.ToString()).ToArray());

Gördüğünüz gibi, etkili bir farkı yok. x.ToString() virgül bulunduğu takdirde aslında tırnak (örneğin, "\"" x.ToString() "\"") x.ToString() wrap gerekebilir dikkat edin.

Bu hafif bir varyantı üzerine ilginç bir okuma için: Eric Lippert günlüğü Comma Quibbling bkz.

Not: Bu daha önce yazılmıştı .NET 4.0 resmi olarak yayınlandı. Şimdi sadece şunu söyleyebiliriz

IEnumerable<T> sequence;
string csv = String.Join(",", sequence);

aşırı kullanma 13**. Bu yöntem, otomatik olarak her öğe projesi x.ToString() 10*.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobinire

    bobinire

    24 EYLÜL 2006
  • placeboing

    placeboing

    7 Mart 2006
  • schmittastic

    schmittastic

    9 EYLÜL 2009