double と integer を含む文字列 "TextLine" があります。次に、文字列を部分に分割し、結果の文字列配列を double に変換します。残念ながら、それを行おうとすると、(「解析」の) オーバーロード解決エラーが発生します。私は何を間違っていますか?
Dim doubleAry As Double() = Array.ConvertAll(TextLine.Split(vbTab), [Double].Parse)
double と integer を含む文字列 "TextLine" があります。次に、文字列を部分に分割し、結果の文字列配列を double に変換します。残念ながら、それを行おうとすると、(「解析」の) オーバーロード解決エラーが発生します。私は何を間違っていますか?
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))