我有一个包含双精度和整数的字符串“TextLine”。现在我想将字符串拆分为其部分并将生成的字符串数组转换为双精度。不幸的是,当我尝试这样做时,我得到了一个重载解析错误(对于“解析”)。我究竟做错了什么?
Dim doubleAry As Double() = Array.ConvertAll(TextLine.Split(vbTab), [Double].Parse)
我有一个包含双精度和整数的字符串“TextLine”。现在我想将字符串拆分为其部分并将生成的字符串数组转换为双精度。不幸的是,当我尝试这样做时,我得到了一个重载解析错误(对于“解析”)。我究竟做错了什么?
Dim doubleAry As Double() = Array.ConvertAll(TextLine.Split(vbTab), [Double].Parse)
你可以这样做:
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))