如何将 CsvHelper 模型 属性 归因于控制数字解析?

How do I attribute a CsvHelper model property to control number parsing?

这是来自与 CsvHelper 一起使用的模型的 属性。

[Name("z")]
public decimal Z {get; set;}

尝试导入数据时出现问题。有时,此字段的输入数据采用指数形式,如 0.00E+00,有时又如 280.11。我怎样才能控制解析?我怀疑它涉及 NumberStyles 但不清楚如何使用它。

我可以使用模型上的属性执行此操作,还是必须创建自定义类型转换器?

有几种方法可以做到这一点,最简单的可能是装饰

[NumberStyles(NumberStyles.Number | NumberStyles.AllowExponent)]
public decimal Z { get; set; }

public class FooMap : ClassMap<Foo>
{
    public FooMap()
    {
        Map(m => m.z).TypeConverterOption.NumberStyles(NumberStyles.Number | NumberStyles.AllowExponent);
    }
}

或者,如果您真的很困惑,您可以编写自己的 TypeConverter