我有一些课
public class Import
{
public DateTime Date { get; set; }
public string Category { get; set; }
}
在csv文件中,标题名称可以是小写。 如何在阅读文件时忽略大小写?
var reader = new StreamReader(@"///");
var csv = new CsvReader(reader);
var records = csv.GetRecords<Import>().ToList();
答案 0 :(得分:13)
如果您使用的是http://joshclose.github.io/CsvHelper/,则可以在构建CsvReader时进行一些配置,或在构建后进行配置。
using (var stringReader = new StringReader(yourString))
using (var csvReader = new CsvReader(stringReader))
{
// Ignore header case.
csvReader.Configuration.PrepareHeaderForMatch = (string header, int index) => header.ToLower();
return csvReader.GetRecords<Import>().ToList();
}
在http://joshclose.github.io/CsvHelper/configuration/
的PrepareHeaderForMatch部分中有更多文档要获得更多粒度,还可以在此处找到类映射说明: http://joshclose.github.io/CsvHelper/mapping
希望有所帮助。
答案 1 :(得分:4)
在当前版本的 CsvHelper 中,你必须这样配置:
var csvConfig = new CsvConfiguration(CultureInfo.InvariantCulture)
{
PrepareHeaderForMatch
= args => args.Header.ToLower()
};
using (var reader = new StreamReader(inputFile))
using (var csv = new CsvReader(reader, csvConfig))
{
...
}