我有一个加载 csvfile 的流式阅读器,问题是我想忽略的数据顶部有一个额外的行。
我正在使用很棒的CSVReader 项目,但是
csv.GetFieldHeaders();
总是看第一行。我认为与其进入 CSVReader 源代码并对其进行更改,不如在将其注入 csvReader 之前从流读取器本身“剥离”第一行可能会更容易。这可能吗?
我有一个加载 csvfile 的流式阅读器,问题是我想忽略的数据顶部有一个额外的行。
我正在使用很棒的CSVReader 项目,但是
csv.GetFieldHeaders();
总是看第一行。我认为与其进入 CSVReader 源代码并对其进行更改,不如在将其注入 csvReader 之前从流读取器本身“剥离”第一行可能会更容易。这可能吗?
只需从 SR 中读取一行,然后将其传递给 CSVReader 构造函数。例如:
using (var sr = new StreamReader("data.csv")) {
sr.ReadLine();
using (var csv = new CsvReader(sr, true)) {
// etc..
}
}
最简单的方法就是在ReadLine()
将读者传递给CSVReader
.
StreamReader
是一个虚拟类,因此您可以创建一个继承类,将所有重要功能委托给某个底层StreamReader
,但它会跳过第一行文本(或者您可以从该TextReader
类型继承)。如果CSVReader
将StreamReader
orTextReader
作为参数,这应该可以正常工作。