gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:30:31 28 4
gpt4 key购买 nike

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

我需要返回原始的 string[] 但我希望在使用库进行解析时可以执行一些清理功能。

我检查了 Github,CsvReader.Read() 似乎使用了 SkipEmptyRecords 但这对我不起作用,因为我有空格。

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

enter image description here

我已经尝试过 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。

关于c# - 使用CsvHelper、CsvReader.Read()时如何忽略空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27104057/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com