我的应用程序读取.CSV文件(其中没有标头的csv文件)并转换为XML文件。对于现有的代码写为
sr = new StreamReader(fs);
fs = null;
using (CsvReader csvReader = new CsvReader(sr))
{
sr = null;
csvReader.Configuration.HasHeaderRecord = hasHeaderRecord;
csvReader.Configuration.IgnoreBlankLines = false;
csvReader.Configuration.IgnoreReadingExceptions = true;
csvReader.Configuration.WillThrowOnMissingField = false;
csvReader.Configuration.TrimFields = true;
csvReader.Configuration.RegisterClassMap<Class1Map>();
FileRecords = csvReader.GetRecords<Class1>().ToList();
}
public class Class1Map : CsvClassMap<Class1>
{
public Class1Map()
{
Map(m => m.AccountId).Index(0);
Map(m => m.MeterId).Index(1);
.......
.......
}
}
但现在对于我的新要求,.csv文件包含与以前的. csv文件不同的标题和列名称。不知何故,我读取了新的CSV文件,并获得了csv文件中存在的值,并Map到class1。
Class1属性为AccountId、MeterId等。但在新格式中,名称现在不同。AccountId为AccountRef,MeterId为MeterSerial。
有人能建议如何将AccountRef、MeterSerial的新文件值Map到class1属性AccountId、MeterId吗
1条答案
按热度按时间4xrmg8kj1#
你可以只把
.Name()
添加到你的Map中,你的第一个没有标题的例子将使用.Index()
,你的第二个有标题的例子将使用.Name()
来Map列。