我想知道 Josh Close 的 CsvHelper 是否在我缺少的配置中有任何东西可以将值转换为 null。我是这个库的忠实粉丝,但我一直认为应该有某种配置让它知道你的文件中哪些值代表 NULL。一个示例是具有值“NA”、“EMPTY”、“NULL”等的列。我确信我可以创建自己的 TypeConverter,但我希望有一个更简单的选项可以在配置中的某个位置设置为这在我遇到的文件中很常见。
是否有一个配置设置可以相对容易地做到这一点?
我在 CsvHelper.TypeConversion 命名空间中找到了 TypeConversion,但不确定在哪里应用这样的东西或正确用法的示例:
new NullableConverter(typeof(string)).ConvertFromString(new TypeConverterOptions(), "NA")
我也在使用最新版本 2.2.2
谢谢!
最佳答案
我认为在过去七年和十三个版本中的某个时间,因为这个问题被问到在没有扩展自定义类型映射类的情况下执行此操作的选项,例如:
csvReader.Context.TypeConverterOptionsCache.GetOptions<string>().NullValues.Add("NULL");
csvReader.Context.TypeConverterOptionsCache.GetOptions<DateTime?>().NullValues.AddRange(new[] { "NULL", "0" });
csvReader.Context.TypeConverterOptionsCache.GetOptions<int?>().NullValues.Add("NULL");
csvReader.Context.TypeConverterOptionsCache.GetOptions<bool>().BooleanFalseValues.Add("0");
csvReader.Context.TypeConverterOptionsCache.GetOptions<bool>().BooleanTrueValues.Add("1");
关于string - 向 CsvHelper 添加可检测的 Nullable 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18733819/