CsvHelper 忽略 header 个名称的大小写
CsvHelper Ignore case for header names
我有一些class
public class Import
{
public DateTime Date { get; set; }
public string Category { get; set; }
}
在 csv 文件中 header 名称可以是小写。
如何在读取文件时忽略大小写?
var reader = new StreamReader(@"///");
var csv = new CsvReader(reader);
var records = csv.GetRecords<Import>().ToList();
如果您正在使用 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();
}
在 https://joshclose.github.io/CsvHelper/api/CsvHelper.Configuration/Configuration/
的 PrepareHeaderForMatch 部分中有更多文档
要获得更详细的信息,还可以在此处找到 class 映射说明:
https://joshclose.github.io/CsvHelper/examples/configuration
希望对您有所帮助。
在当前版本的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))
{
...
}
我有一些class
public class Import
{
public DateTime Date { get; set; }
public string Category { get; set; }
}
在 csv 文件中 header 名称可以是小写。 如何在读取文件时忽略大小写?
var reader = new StreamReader(@"///");
var csv = new CsvReader(reader);
var records = csv.GetRecords<Import>().ToList();
如果您正在使用 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();
}
在 https://joshclose.github.io/CsvHelper/api/CsvHelper.Configuration/Configuration/
的 PrepareHeaderForMatch 部分中有更多文档要获得更详细的信息,还可以在此处找到 class 映射说明: https://joshclose.github.io/CsvHelper/examples/configuration
希望对您有所帮助。
在当前版本的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))
{
...
}