簡體   English   中英

將 CSV 記錄轉換為自定義數據類型 IEnumerable (C#)

[英]Converting CSV records to custom datatype IEnumerable (C#)

我有一些純 CSV 格式的數據,比如:

a1,b1
a2,b2
a3,b3

我創建了一個類 (CsvRecord),它可以從單個 csv 行中消耗一個元素。 使用 Linq,我已經能夠使用以下代碼IEnumerable<CSVRecord> CSV 數據轉換為IEnumerable<CSVRecord>

IEnumerable<CSVRecord> list = csvList.Select(a => new CSVRecord(a.Split(new char[]{','})[0], a.Split(new char[]{','})[1]));

這確實符合我的要求,但僅通過查看它,這似乎不是實現這一目標的好方法。 你能建議我如何改進嗎?

您絕對不想編寫自己的 CSV 解析器(如您所見),除非您還准備完全實施RFC 4180標准。 這可能不是您想要做的。 有很多不明顯的邊緣情況。 幸運的是,實現已經存在。

我會使用CsvHelper 我曾多次使用它進行閱讀和寫作,根據我的經驗,它一直是一個很好的圖書館。

有幾個很好的 CSVReader 庫。

改進的一個好方法是查看那里的代碼,如果您想重新發明輪子作為學習經驗,請使用這些作為示例。

但是,如果您只是想要它們的功能,那么請使用預先存在的庫。

查看;

http://www.csvreader.com/ (收費,但很好。如果需要,您甚至可以購買源代碼)。 http://www.codeproject.com/KB/database/CsvReader.aspx

我相信還有更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM