加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用CsvHelper,CsvReader.Read()时如何忽略空格?

发布时间:2020-12-15 07:44:11 所属栏目:百科 来源:网络整理
导读:使用CsvHelper库,特别是CsvReader.Read()函数时,有没有办法忽略空白记录和/或空格? 我需要返回原始字符串[]但是希望,我可以在使用库进行解析时执行一些清理功能. 我已经检查过Github和CsvReader.Read()似乎使用SkipEmptyRecords但这对我来说不起作用,因为我
使用CsvHelper库,特别是CsvReader.Read()函数时,有没有办法忽略空白记录和/或空格?

我需要返回原始字符串[]但是希望,我可以在使用库进行解析时执行一些清理功能.

我已经检查过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));

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读