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

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008
  • TROPFEST

    TROPFEST

    27 Mart 2007