CsvHelper - 如何为不在类中的列创建CsvClassMap

时间:2017-05-10 16:22:36

标签: csvhelper

如何在我的CsvClassMap中为我的类中不存在的属性添加列?

要写入文件的类

public class Customer {
   public int ID { get; set; }
   public string Name { get; set; }
}

CsvClassMap

public sealed class CustomerMap : CsvClassMap<Customer>
{
    public CustomerMap() {
        Map(r => r.ID).Index(1)
        Map(r => r.Name).Index(2)
        //need a column called Rec ID that is simple concatenation of ID and Name
        Map(r => ???).Index(0).Name("Rec ID")
    }
}

所需的CSV输出

  

记录ID,ID,名称

     

1Bob,1,鲍勃

GitHub Issue Reference

1 个答案:

答案 0 :(得分:0)

写入CSV时,我更喜欢手动将对象映射到与我期望的列完全匹配的类。它非常灵活,明确,并且不需要编写CSV类映射所需的代码。在你的情况下,它看起来像这样

var customerRows = customers.Select(c => new {RecID = c.ID + c.Name, c.ID, c.Name });

然后你会将customerRows写入CSV。