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#を使用すると、DTOをすばやく簡単に定義できます –
ファイルは空でなければなりません。クエリに少なくとも1つのCandidatesDTOがあり、nullがあるはずです。 – jdweng