CsvHelper 不解析 csv

CsvHelper isn't parsing csv

我正在尝试使用 CsvHelper 来解析一个 csv 文件并获取一个 class 对象数组。但我无法从 CsvReader 获得任何结果。我做错了什么?

TextReader reader = File.OpenText("test.csv");
string stringResult=reader.ReadToEnd(); //this works

var csvReader = new CsvReader(reader);
TestCsvEntity[] resultReader = csvReader.GetRecords<TestCsvEntity>().ToArray(); //but this is empty

我的 test.csv 文件是这样的:

RowNumber,Value
1,a
2,b
3,c

我的class对象是

public class TestCsvEntity
{
    public int RowNumber { get; set; }
    public string Value { get; set; }
}

如果这在您的代码中,请将其删除:

string stringResult=reader.ReadToEnd(); //this works

它可能读取到流的末尾,然后您将 reader 传递给位于流中最后位置的 CSVHelper。您想向 CSVHelper 传递一个位于起始位置的流。

试试这个调试:

TextReader reader = File.OpenText("test.csv");

Console.WriteLine("Stream Length:" + reader.BaseStream.Length);
Console.WriteLine("Stream Position before ReadToEnd(): " + reader.BaseStream.Position);

string stringResult=reader.ReadToEnd(); //this works

Console.WriteLine("Stream Position after ReadToEnd(): " + reader.BaseStream.Position);