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

  • 365multimedia

    365multimedi

    26 ŞUBAT 2009
  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011