我目前正在尝试使用TinyCsvParser
解析文件,尽管我的测试内容有很多条目,但仍返回0个结果。代码如下:
映射类:
public class TransactionCsvMapping : CsvMapping<TransactionDto>
{
public TransactionCsvMapping()
: base()
{
MapProperty(0, x => x.OccurenceDate);
MapProperty(1, x => x.Name);
MapProperty(4, x => x.Amount);
}
}
我正在尝试从CSV行创建一个模型类的列表:
public class TransactionDto
{
public string Name { get; set; }
public double Amount { get; set; }
public DateTime OccurenceDate { get; set; }
}
解析CSV文件:
CsvParserOptions csvParserOptions = new CsvParserOptions(true, ',');
CsvReaderOptions csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
TransactionCsvMapping csvMapper = new TransactionCsvMapping();
CsvParser<TransactionDto> csvParser = new CsvParser<TransactionDto>(csvParserOptions, csvMapper);
var result = csvParser
.ReadFromString(csvReaderOptions, fileContents)
.ToList(); //results is empty here!
这是解析时
fileContents
的内容:"Date","Transaction","Name","Memo","Amount"
"9/7/2016","DEBIT","DEBIT PURCHASE","Food Yummy","-4.8000"
"9/7/2016","DEBIT","DEBIT PURCHASE","Gas Blah","-28.0000"
文字字符串在哪里:
"\"Date\",\"Transaction\",\"Name\",\"Memo\",\"Amount\"\n\"9/7/2016\",\"DEBIT\",\"DEBIT PURCHASE\",\"Food Yummy\",\"-4.8000\"\n\"9/7/2016\",\"DEBIT\",\"DEBIT PURCHASE\",\"Gas Blah\",\"-28.0000\"\n\n"
为什么我在这里没有得到任何结果?我该如何克服?
最佳答案
我通过使用您的代码成功获得了结果。
使用\r\n
代替\n
作为换行符,或使用\n
声明换行符
new CsvReaderOptions(new[] { "\n" });
关于c# - TinyCsvParser不返回任何结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53873207/