有没有办法从StreamReader中删除第一行

问题描述:

我有一个streamreader会加载一个csvfile,问题是在我想忽略的数据顶部有一行额外的行。有没有办法从StreamReader中删除第一行

我现在用的CSVReader project这是伟大的,但

csv.GetFieldHeaders(); 

看起来总是在第一行。不要进入CSVReader源代码并改变它,我认为这可能会更容易,如果我可以从streamreader本身“剥离”出第一行,然后将其注入到csvReader中。这可能吗?

在将它传递给CSVReader构造函数之前,只需从SR读取一行即可。例如:

using (var sr = new StreamReader("data.csv")) { 
    sr.ReadLine(); 
    using (var csv = new CsvReader(sr, true)) { 
     // etc.. 
    } 
} 

StreamReader是虚拟类,所以你可以创建一个继承的类,它代表所有重要的功能,一些潜在的StreamReader,与它跳过文本的第一行除外(或者你可以从TextReader类型继承)。如果CSVReaderStreamReaderTextReader作为参数,则应该可以正常工作。

最简单的方法就是在您将读者传递给CSVReader之前自己致电ReadLine()