我有一个加载csv文件的streamreader,问题是我想忽略的数据顶部还有一行。
我使用的是CSVReader project,但很棒
csv.GetFieldHeaders();
总是看第一行。而不是进入CSVReader源代码并更改它,我认为如果我可以在将它注入csvReader之前从流读取器本身“剥离”第一行可能更容易。这可能吗?
答案 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
类型。如果CSVReader
将StreamReader
或TextReader
作为参数,则应该可以正常工作。