繁体   English   中英

C#.NET:使用 % 转换器读取 CSV

[英]C#.NET: Read CSV using % converter

我正在阅读 CSV 文件

Name,Score
Pat,99%
Chris,87%

并希望在通过 FileHelpers 读取文件时丢弃百分号

using FileHelpers;

public class PctConverter : ConverterBase
{
    private NumberFormatInfo nfi = new NumberFormatInfo();

    public PctConverter()
    {
        nfi.PercentSymbol = "%";
    }

    public override object StringToField(string from)
    {
        return decimal.Parse(from, NumberStyles.Percent, nfi);
    }
}

[DelimitedRecord(",")]
[IgnoreFirst]
public class Student
{
    public string Name { get; set; }
    public decimal Score { get; set; }
}

var student_file = "students.csv";
var engine = new FileHelperEngine<Student>();
engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
List<Student> students = engine.ReadFileAsList(student_file);
ErrorInfo[] readingErrors = engine.ErrorManager.Errors;

但是我的转换器不太正确。 你能建议为什么吗?

您需要在要转换的字段上指定转换器,而且您的转换器对我不起作用,所以我简化了一点:

public class PctConverter : ConverterBase
{
    public override object StringToField(string from)
    {
        return decimal.Parse(from.Replace("%", ""));
    }
}

[DelimitedRecord(",")]
[IgnoreFirst]
public class Student
{
    public string Name { get; set; }

    [FieldConverter(typeof(PctConverter))]
    public decimal Score { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM