我一直在阅读建议不要自己编写CSV读取器/写入器的内容,于是我尝试使用通过nuget安装的CsvHelper库。CSV文件是灰度图像,行数为图像高度,列数为宽度。我想将值按行读入单个List<string>
或List<byte>
中。
到目前为止,我的代码如下:
using CsvHelper;
public static List<string> ReadInCSV(string absolutePath)
{
IEnumerable<string> allValues;
using (TextReader fileReader = File.OpenText(absolutePath))
{
var csv = new CsvReader(fileReader);
csv.Configuration.HasHeaderRecord = false;
allValues = csv.GetRecords<string>
}
return allValues.ToList<string>();
}
但是allValues.ToList<string>()
引发了一个:
CsvConfigurationException未被用户代码处理
类型为'CsvHelper.Configuration.CsvConfigurationException'的异常在CsvHelper.dll中发生,但未在用户代码中处理
额外信息:继承IEnumerable的类型无法自动映射。 您是否意外调用了GetRecord或WriteRecord(作用于单个记录)而不是调用GetRecords或WriteRecords(作用于记录列表)?
GetRecords
可能期望我的自定义类,但我只想要一些基本类型或字符串值。 同样,我怀疑整个行被转换为单个字符串,而不是每个值都是单独的字符串。