有没有办法从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
类型继承)。如果CSVReader
以StreamReader
或TextReader
作为参数,则应该可以正常工作。
答
最简单的方法就是在您将读者传递给CSVReader
之前自己致电ReadLine()
。