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

时间:2010-06-28 16:06:02

标签: c# csv streamreader

我有一个加载csv文件的streamreader,问题是我想忽略的数据顶部还有一行。

我使用的是CSVReader project,但很棒

 csv.GetFieldHeaders(); 

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

3 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

StreamReader是一个虚拟类,所以你可以创建一个继承的类,将所有重要的功能委托给一些底层的StreamReader,除了它跳过第一行文本(或者你可以继承)来自TextReader类型。如果CSVReaderStreamReaderTextReader作为参数,则应该可以正常工作。