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);
}
我在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);
}