c# - 如何为 FileHelpers 元素类的字段定义默认值

标签 c# .net filehelpers

我正在尝试加载 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/

相关文章:

c# - 返回一个长度为 n 的 int 数组,其中包含 pi 的前 n 位数字? (C#)

c# - 如何动态改变 WPF 窗口的大小?

c# - 连接到 Oracle DB 的 Filehelpers 数据链路

.net - NHibernate:如何在运行时重新配置映射?

.net - 如何强制在 Visual Studio 2013 中打开解决方案文件 (SLN)?

csv - FileHelpers 类型中的字段顺序

c# - 将实际记录作为属性包含在 Filehelpers 记录对象中

c# - 为什么我的 Azure WebJob 应用程序中的 TimerTrigger'd 函数未被检测到?

c# - VSTO Add-In 是否支持 Mac(iOS) 操作系统?

.net - PreRequestHandlerExecute 中的 session 为空