2

我有一个加载 csvfile 的流式阅读器,问题是我想忽略的数据顶部有一个额外的行。

我正在使用很棒的CSVReader 项目,但是

 csv.GetFieldHeaders(); 

总是看第一行。我认为与其进入 CSVReader 源代码并对其进行更改,不如在将其注入 csvReader 之前从流读取器本身“剥离”第一行可能会更容易。这可能吗?

4

3 回答 3

12

只需从 SR 中读取一行,然后将其传递给 CSVReader 构造函数。例如:

using (var sr = new StreamReader("data.csv")) {
    sr.ReadLine();
    using (var csv = new CsvReader(sr, true)) {
        // etc..
    }
}
于 2010-06-28T16:10:32.903 回答
3

最简单的方法就是在ReadLine()将读者传递给CSVReader.

于 2010-06-28T16:08:14.383 回答
2

StreamReader是一个虚拟类,因此您可以创建一个继承类,将所有重要功能委托给某个底层StreamReader,但它会跳过第一行文本(或者您可以从该TextReader类型继承)。如果CSVReaderStreamReaderorTextReader作为参数,这应该可以正常工作。

于 2010-06-28T16:07:48.613 回答