CsvHelper C# 写入记录

CsvHelper C# WriteRecords

我在class中映射了一个csv文件,假设它叫A是这样制作的

  public class A {
      private string field1;
      private string field2;
   }

当我调用 writeRecords 方法时,我想颠倒字段的顺序,例如我想先写字段 2,然后再写字段 1,这可能吗?

嗯,快速 Google 搜索 CsvHelper 为我提供了一个写得很好的文档页面:https://joshclose.github.io/CsvHelper/2.x/

您可以使用简单的方法,使用 writeRecord 方法代替,在 for 语句中,以您想要的任何顺序写入记录,或者,您可以为其创建自定义映射。无论如何,请参阅文档以获取示例。

您可以创建自定义 ClassMap<A> 并为每个 属性:

提供索引
public class A_Mapper : ClassMap<A>
{
    public A_Mapper()
    {
        Map(a => a.field1).Index(1);
        Map(a => a.field2).Index(0);
    }
}

要使其正常工作,您需要将此映射器注册到配置中:

using (MemoryStream stream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(stream))
using (CsvWriter csv = new CsvWriter(writer))
{
    csv.Configuration.RegisterClassMap<A_Mapper>();
    csv.WriteRecords(aList);
}

文档:https://joshclose.github.io/CsvHelper/2.x/