我目前正在尝试使用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"


为什么我在这里没有得到任何结果?我该如何克服?

最佳答案

我通过使用您的代码成功获得了结果。

c# - TinyCsvParser不返回任何结果-LMLPHP

使用\r\n代替\n作为换行符,或使用\n声明换行符

new CsvReaderOptions(new[] { "\n" });

关于c# - TinyCsvParser不返回任何结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53873207/

10-12 16:14
查看更多