2012-05-27 51 views
2

我有一個很長的(ish)csv,我需要攝入一個多維數組或數據表進行迭代。格式很簡單:任何使用linq將CSV讀入數組或數據表的方法?

filepathX,sizeinbytes1(即C:\ TEMP \ yourfile.txt,12345)

在直.NET我用了OLEDB提供,但是Unity引擎似乎並沒有打漂亮這個參考。我不能使用像FileHelpers這樣的外部庫。

+3

閱讀CSV是一項棘手的業務。有一個相當受歡迎的解析器,可以下載的源代碼在MIT許可下發布,[這裏](http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader)是鏈接。 – dasblinkenlight

+0

出於好奇,當你說「不好玩」時,你看到了什麼問題?修改它們可能比修改代碼庫更容易。 –

回答

1

dasblinkenlight是正確的關於CVS是(一般)不平凡解析,但你已經描述了一個非常具體的格式。

個人而言,我只是逐行讀取文件並使用LastIndexOf(「,」)來分割大小 - 至少可以保護您免受文件名中包含逗號的可能性的影響。

Fianlly,你真的需要它在一個數組或數據表中嗎?您可以使用「yield return」將文件讀入到自己的迭代器中(如果您懶惰,則返回一個自定義結構或一個Tuple!),並且至少有「漂亮」的代碼坐在頂部進行迭代。