C# 使用CsvHelper控制标题字段名称

C# 使用CsvHelper控制标题字段名称,c#,csvhelper,C#,Csvhelper,当使用CsvHelper 6.1.0编写CSV文件时,文档仅一次提到在写入时控制标头名称: 书写时,只使用名字 我的代码与给出的示例一致: Map(m => m.ReportingGroup).Name("Reporting Group"); Map(m => m.Merchant); Map(m => m.ActivityDate).Name("Activity Date"); Map(m => m.SettlementDate).Name("Settlement Da

当使用CsvHelper 6.1.0编写CSV文件时,文档仅一次提到在写入时控制标头名称:

书写时,只使用名字

我的代码与给出的示例一致:

Map(m => m.ReportingGroup).Name("Reporting Group");
Map(m => m.Merchant);
Map(m => m.ActivityDate).Name("Activity Date");
Map(m => m.SettlementDate).Name("Settlement Date");
在写入操作期间不会写入空格

报告组、商户、活动日期、结算日期

我的读取()和写入(),如果需要:

public static IEnumerable<TR> Read<TR, TMap>(string filename)
    where TMap : ClassMap
{
    List<TR> records;
    using (var sr = new StreamReader(filename))
    {
        var csv = new CsvReader(sr);
        csv.Configuration.RegisterClassMap<TMap>();
        records = csv.GetRecords<TR>().ToList();
    }
    return records;
}

public static void Write<T>(IEnumerable<T> records, string filename, Logger logger)
{
    var enumerable = records as IList<T> ?? records.ToList();
    logger?.Debug($"Writing {enumerable.Count} records to file: {filename}");
    using (var fcreate = File.Open(filename, FileMode.Create))
    using (var writer = new StreamWriter(fcreate))
    {
        var csv = new CsvWriter(writer);
        csv.WriteRecords(enumerable);
    }
    logger?.Debug("Writing complete.");
}
公共静态IEnumerable读取(字符串文件名)
其中TMap:ClassMap
{
列出记录;
使用(var sr=newstreamreader(文件名))
{
var csv=新的CsvReader(sr);
csv.Configuration.RegisterClassMap();
records=csv.GetRecords().ToList();
}
退货记录;
}
公共静态无效写入(IEnumerable记录、字符串文件名、记录器)
{
var enumerable=作为IList的记录??records.ToList();
logger?.Debug($“将{enumerable.Count}记录写入文件:{filename}”);
使用(var fcreate=File.Open(filename,FileMode.Create))
使用(var writer=newstreamwriter(fcreate))
{
var csv=新的csv编写器(编写器);
csv.WriterRecords(可枚举);
}
记录器?.Debug(“写入完成”);
}

编写时需要注册类映射。看起来你在读的时候有,但在写的时候没有