c# - CsvHelper:如何忽略标题行?
问题描述
我正在使用CsvHelper包来解析 TSV 文件。
我希望一次处理每条记录,而不是自动反序列化为一个类,因为我需要单独处理这些字段。
但是,即使我设置HasHeaderRecord = true
了 ,我也会将标头作为循环中的第一条记录返回。
文档说:“Read()将阅读器推进到下一条记录。这不会读取标题。您需要调用 CsvHelper.CsvReader.Read 然后调用 CsvHelper.CsvReader.ReadHeader 以读取标题”。
这个 GitHub 问题说:“调用 Read() 将读取当前记录。如果你有一个标题记录,你需要在之后调用 ReadHeader”。
但这对我来说仍然没有意义,在下面的代码中。我应该调用ReadHeader
每一行(在循环内)吗?这没有任何意义,而且我试过了,它抛出了一个异常。
目前,我可以手动忽略第一条记录,但我很好奇ReadHeader
方法,以及我对上面的理解!
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
csv.Configuration.Delimiter = "\t";
csv.Configuration.HasHeaderRecord = true;
while (csv.Read())
{
if (csv.Context.Record.Length != numExpectedColumns)
{
errors++;
continue;
}
int i = 0; // Calculate which index to be reading from based on various factors.
string interestingField = csv[i];
}
解决方案
推荐阅读
- node.js - 示例代码在本地机器上完美运行,但不运行 aws-coloud9 IDE 预览浏览器
- sql-server - 如何在 ASP.Net Web API 中调用动态(SELECT)存储过程
- python - 如何在 TensorFlow 中添加 dropout 层?以及如何在 python 3.x 中增加 Numpy 数组?
- image-processing - 模型的输入是否需要梯度?
- java - 如何处理android studio中的“应用程序已停止”问题
- python - 你如何在 PyQt5 中显示和隐藏小部件?
- reactjs - 附加 react-redux 的提供者给了我一个无效的钩子错误
- python - 如何将此多折线图更改为条形图?
- ios - Swift 4 中的 UIButtonClick 上的嵌入式 UITableView 未使用 reloadData() 重新加载
- swift - 通用视图配置器