我正在尝试加载 CSV 文件(delims 是 ';',引号是 '"')。
我已经成功创建了所有内容(向导工具很棒),但有一件事我找不到解决方案。
基本上,我有一个整数 (System.Int32) 列。理论上,大多数 记录在该列中将有一个正整数值。但是,有时我可能会在该列中遇到值“N/A”。我想要实现的是,当 FileHelpers 在该列中遇到“N/A”时,分配一个默认值(-1 工作正常)。
有人知道这是否可行吗?
PS:我可能需要对 System.DateTime 字段执行相同的操作(有时它也可能有“N/A”)。
最佳答案
想到做你想做的事情的最好方法是在这些字段上使用 FieldConverter
属性并创建自定义转换器类来分配你希望字段具有的默认值。
您需要创建一个继承ConverterBase
的类,然后为StringToField()
和FieldToString()
两个虚方法提供实现>.
在 FieldToString()
方法中,您将检查字符串是否等于“N/A”。如果是,则返回您想要的默认值。
您将需要两个不同的类,一个可以处理 Int32
,一个可以处理 DateTime
。
FileHelpers 文档有一个如何执行此操作的示例。 Link
关于c# - 如何为 FileHelpers 元素类的字段定义默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007018/