CsvHelper忽略标题名称的大小写

时间:2018-03-27 19:41:59

标签: c# csvhelper

我有一些课

 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();

2 个答案:

答案 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))
{
    ...
}