【问题标题】:Convert string array to double array in VB.NET在 VB.NET 中将字符串数组转换为双精度数组
【发布时间】:2012-12-12 20:06:31
【问题描述】:

我有一个包含双精度和整数的字符串“TextLine”。现在我想将字符串拆分为多个部分并将生成的字符串数组转换为双精度。不幸的是,当我尝试这样做时,我得到了一个重载解析错误(对于“解析”)。我做错了什么?

Dim doubleAry As Double() = Array.ConvertAll(TextLine.Split(vbTab), [Double].Parse)

【问题讨论】:

    标签: arrays vb.net type-conversion


    【解决方案1】:

    你可以这样做:

    Dim doubleAry As Double() = Array.ConvertAll(TextLine.Split(vbTab), New Converter(Of String, Double)(AddressOf Double.Parse))
    

    但是,如果您提供的字符串数组包含任何无效项,则会引发异常并且无法转换任何项。如果您想处理无效项目并将其默认为 0,您可以实现自己的转换器,如下所示:

    Private Function DoubleConverter(ByVal text As String) As Double
        Dim value As Double = 0
        Double.TryParse(text, value)
        Return value
    End Function
    

    然后,你可以这样使用它:

    Dim doubleAry As Double() = Array.ConvertAll(TextLine.Split(vbTab), New Converter(Of String, Double)(AddressOf DoubleConverter))
    

    【讨论】:

    • 谢谢 Steven..但是当我运行这一行时,我收到一个 FormatException 错误,指出输入字符串的格式不正确。有什么想法吗?
    • 那么它可能不会:) 如果您想单独处理每个项目的格式异常,则必须实现自己的转换器方法。我会用一个例子来更新我的答案。
    猜你喜欢
    • 2014-07-22
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    相关资源
    最近更新 更多