我使用库CsvHelper编写CSV。我有不包含所有记录的对象,必须将空字段添加到CSV中。例如:
public class Example
{
public string Test1 { get; set; }
public string Test2 { get; set; }
}
这张地图:
public class ExampleMap : ClassMap<Example>
{
public ExampleMap()
{
Map(ex=>ex.Test1).Index(0);
Map(ex=>ex.Test2).Index(4);
}
}
我想要这个对象
new Example() { Test1="dummy", Test2="field" };
此csv结果:
dummy;;;field
如果有人可以帮助我,我真的很难解决这个问题:)
非常感谢
最佳答案
似乎违反了在两者之间具有显式列映射的概念。
似乎CsvHelper库不支持这种情况,因为the library simply uses indices in ascending order用于定义的列映射(“映射的列”)。
但是,如果确实需要具有这样的输出,则可以按如下方式引入“未使用”(保留)列:
internal sealed class Example
{
public string Test1 { get; set; }
public string Test2 { get; set; }
public string Reserved1 { get; set; }
public string Reserved2 { get; set; }
}
internal sealed class ExampleMap : CsvClassMap<Example>
{
public ExampleMap()
{
Map(ex => ex.Test1).Index(0);
Map(ex => ex.Reserved1).Index(1);
Map(ex => ex.Reserved2).Index(2);
Map(ex => ex.Test2).Index(3);
}
}
关于c# - 在CSVHelper中添加虚拟空字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25794840/