我有一类用户,可以有几个联系号码.我正在使用CsvHelper生成用户报告,该报告将创建用户姓名和联系人详细信息的CSV文件.每个联系号码都应显示在自己的列中,联系号码的类型为列标题.
下面我有我的ContactNumber和User类,以及应该格式化我的CSV文件的UserMap类:
public class ContactNumber { public string ContactType { get; set; } public string Number { get; set; } } public class User { public string Name { get; set; } public IEnumerable<ContactNumber> ContactNumbers{ get; set;} } public sealed class UserMap : CsvClassMap<User> { public UserMap() { Map(m => m.Name).Name("Username"); // Incorrect Code Map(m => m.ContactNumbers).Name(c => c.ContactType); } }
我应该如何映射ContactNumbers的IEnumerable属性以实现我想要的结果?
解决方法
它不是
CsvHelper – read in multiple columns to a single list的副本,因为这个问题询问如何从模型转换为CSV而不是相反.我通过创建一个中间模型解决了这个问题.因此,首先将原始模型(用户)转换为模型(联系人)之间,然后映射该模型并创建CSV.