如何在使用CsvHelper,CsvReader.Read()时忽略空白空间?

当使用CsvHelper库,特别是CsvReader.Read()函数时,有没有办法忽略空白记录和/或空白?

我需要返回原始string[]但希望,我可以做一些清理功能时,解析库。

我检查过Github和CsvReader.Read()似乎使用SkipEmptyRecords,但这对我来说不起作用,因为我有空白。

这是我的csv文件,它以UTF8编码,没有BOM。

我试过ASCII编码,以防万一我错过了一些东西,但那也不起作用。
如果没有人知道我会与Josh聊天,并提交一个修复Git请求。

参考:http://joshclose.github.io/CsvHelper/


我认为你最好的选择是自己修理图书馆。

问题是Read方法使用SkipEmptyRecords设置和IsRecordEmpty方法来确定是否应该跳过一个字段:

while (this.configuration.SkipEmptyRecords && this.IsRecordEmpty(false));

但是,IsRecordEmpty()方法并未完美实现以支持您的方案,因为它使用以下代码:

Enumerable.All<string>((IEnumerable<string>) this.currentRecord, new Func<string, bool>(string.IsNullOrEmpty));

这不起作用,因为你的字符串不为空或空。 在我看来,将Trimming和SkipEmptyRecords结合起来可以在理论上起作用:

 csv.Configuration.TrimFields = true;
 csv.Configuration.SkipEmptyRecords = true;

但是,在检查字段是否为空时,也不会使用修剪,所以我非常确定您唯一的选择是自己修复库并在IsRecordEmpty()方法中使用修剪,或者使用IsNullOrWhiteSpace而不是IsNullOrEmpty。

链接地址: http://www.djcxy.com/p/82633.html

上一篇: How do you ignore Whitespace when using CsvHelper, CsvReader.Read()?

下一篇: Animation of features in OpenLayers3