Я пытаюсь разобрать CSV
модели, но мой IEnumerable
всегда null. Что-то не так с этим кодом?Анализ CSV до модели
private IEnumerable<CandidatesDTO> FileToDto(byte[] file)
{
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
IEnumerable<CandidatesDTO> query = null;
string[] separators = { ",", ".", "!", "?", ";", ":", " " };
try
{
var str = enc.GetString(file);
query = from line in str
let data = str.Split(separators, StringSplitOptions.RemoveEmptyEntries)
select new CandidatesDTO
{
Id = Int32.Parse(data[0]),
Name = data[1],
DOB = DateTime.Parse(data[2], CultureInfo.InvariantCulture),
Phone = data[3],
Email = data[4]
};
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return query;
}
UPDATE. Я обнаружил, что существует Исключение - «Строка ввода была в некотором формате». Казалось, что некорректный тип передавался со строкой, и это вызывало исключение FormatException.
, пожалуйста, поделитесь своим содержимым файла csv –
Могу ли я предложить вам добавить проект F # в ваше текущее решение. Затем вы можете воспользоваться преимуществами поставщика CSV-типа, как описано здесь http://fsharp.github.io/FSharp.Data/library/CsvProvider.html Помимо этого с F #, быстро и легко определить DTOs –
Файл должен быть пустым. У вас должен быть хотя бы один запрос CandidatesDTO, и у вас есть null. – jdweng