В настоящее время я использую ServiceStack.Text для десериализации CSV для списка объектов.
Моя модель
public class UploadDocument
{
[DataMember(Name = "Patient")]
public string Patient { get; set; }
[DataMember(Name = "Patient First Name")]
public string PatientFirstName { get; set; }
[DataMember(Name = "Patient Last Name")]
public string PatientLastName { get; set; }
[DataMember(Name = "Email")]
public string Email { get; set; }
}
Код C #
var csvData = System.IO.File.ReadAllText(fileName).FromCsv<List<UploadDocument>>();
Это работаетхорошо, даже если в CSV отсутствует какой-либо столбец, т. е. если CSV содержит только имя пациента, имя пациента все равно загружает данные в объект с нулевым значением для фамилии пациента и адреса электронной почты.
Но при возникновении ошибкидополнительный столбец без заголовка
Patient, Patient First Name, Patient Last Name, Email
XXX, YYY, ZZZZZ, nwerwer@yahoo.com, QWER
XXX, YYY, ZZZZZ, nwerwerwe@yahoo.com, QWER
XXX, YYY, ZZZZZ, nwerwe@yahoo.com, QWER
Как мне справиться с этим?
Ожидается, что здесь даже при меньшем количестве столбцов или при наличии дополнительной строки без заголовка соответствующий столбец (Заголовок CSV и свойство класса) должны загружаться без проблем.
Примечание: Порядок столбцов CSV будет различаться для каждого файла