【发布时间】:2019-01-10 15:13:25
【问题描述】:
使用类似的代码,我收到异常:
ExpandoObject 中已存在具有相同键 '' 的元素
using (var reader = new StreamReader("SampleData.csv"))
using (var csv = new CsvReader(reader))
{
var records = csv.GetRecords<dynamic>();
}
【问题讨论】:
使用类似的代码,我收到异常:
ExpandoObject 中已存在具有相同键 '' 的元素
using (var reader = new StreamReader("SampleData.csv"))
using (var csv = new CsvReader(reader))
{
var records = csv.GetRecords<dynamic>();
}
【问题讨论】:
这仅仅是因为 CsvHelper 默认使用列标题作为动态对象属性的名称:
确保设置csvReaderConfig.HasHeaderRecord = false; 或使用其他技术(例如映射到类)非常重要。
var csvReaderConfig = new Configuration();
csvReaderConfig.HasHeaderRecord = false;
using (var reader = new StreamReader("SampleData.csv"))
using (var csv = new CsvReader(reader, csvReaderConfig))
{
var records = csv.GetRecords<dynamic>();
}
【讨论】: