c# - 使用微型 csv 帮助器解析 csv 时将浮点数转换为 int32
问题描述
我想知道使用微型 csv 助手解析 csv 时是否可以自动将 float 转换为 int32?使用以下代码可以轻松转换日期时间:
MapProperty(0, x => x.Date, new DateTimeConverter("yyyyMMdd"));
但 csv 中的其他列的格式为 123456.00,当我映射到 int 属性时会引发错误。谁能举例说明如何实现这一目标?谢谢
解决方案
因此,一种解决方案是定义您自己的 ITypeConverter 如下:
using TinyCsvParser.TypeConverter;
using System;
public class CustomIntConverter : ITypeConverter<int>{
public bool TryConvert(string value, out int result)
{
try {
float floatValue = float.Parse(value);
int intValue = (int)floatValue;
result = intValue;
return true;
} catch {
result = default(int);
return false;
}
}
public Type TargetType { get => typeof(int); }
}
并像这样使用它:
MapProperty(0, x => x.YourIntField, new CustomIntConverter());
推荐阅读
- playframework - Playframework Twirl @form 'class
- python - 我想在文件中找到第一个空白行并在其中写入文本但它不会写入?
- spring - 在使用 Spring Azure OAuth 时从不同来源加载用户角色
- ascii-art - Ascii艺术动画文件格式?
- laravel - 如何使路线模型绑定与我需要的任何路线一起运行?
- r - 根据另一列中的条件跨多列执行函数
- ios - 无法使通用链接工作
- html - 如何在使用 css 网格时优化大量 ng-repeats
- c# - 接收 POST 请求但从未调用的操作方法
- java - 为什么某些 Java 函数能够更改不可变的 Kotlin 对象?