首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CsvHelper忽略值

CsvHelper忽略值
EN

Stack Overflow用户
提问于 2018-06-27 03:12:26
回答 2查看 458关注 0票数 0

在源文件中,我有时会用连字符表示双字段

代码语言:javascript
复制
448,218|7,948,218|-|448,218|-

我写了一个类型转换器来处理这个问题。

代码语言:javascript
复制
public class HyphenToZeroConverter : ITypeConverter
{
    public string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
    {
        throw new NotImplementedException();
    }

    public object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
    {
        if (text == "-")
        {
            return 0.0;
        }
        return double.Parse(text, NumberStyles.AllowParentheses |
                                  NumberStyles.AllowThousands |
                                  NumberStyles.AllowDecimalPoint);
    }
}

但是转换不起作用,Message=The conversion cannot be performed.Text:-

此外,数字样式不起作用,因为我得到的异常为千分隔符和括号的负数。即使我没有使用任何类型转换器,这种情况也会发生。

你能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-27 04:13:35

在调用该方法时,我确实看不到文本包含的内容,但要执行double.parse,需要确保从文本中剔除任何不是数字的字符,例如

代码语言:javascript
复制
text = text.Replace('|', String.Empty);
票数 0
EN

Stack Overflow用户

发布于 2018-06-27 05:04:39

CsvHelper的作者Josh Close回答了这个问题

Github issue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51049961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档