タイトルの通りです。
DoubleからStringの型変換が不可なんでしょうか?
”.ToString” によってエラーになってるようです。
For~Eachでの3行で処理するとOKなのですが1行で
なんとかならないものかと調べていましたが、いきずまっています。
Items.AddではなくItems.AddRangeを使う場合、どういうふうに
書くんでしょうか?。ちなみに、配列がString型の場合にはエラー
にならないことは知っています。(.ToStringも不要)
’--------サンプル----------
Public Class Form1
Private Sub Button1_Click() Handles Button1.Click
Dim Test_arr() As Double = {1.4, 1.2, 1.9, 1.7, 1.4, 2.8, 1.2, 3.2, 1.99, 4.2}
ListBox1.Items.AddRange(Test_arr.ToString) '←この行でエラー
For Each x As Double In Test_arr '←これはOK
ListBox1.Items.Add(x.ToString) '
Next '
End Sub
End Class
エラー内容は、↓
------------------------------------------------------------------
エラー 1 これらの引数で呼び出される、アクセス可能な 'AddRange' が
ないため、オーバーロードの解決に失敗しました:
'Public Sub AddRange(items() As Object)': 型 'String' の値を 'Object の
1 次元配列' に変換できません。
'Public Sub AddRange(value As System.Windows.Forms.ListBox.ObjectCollection)': 型 'String' の
値を 'System.Windows.Forms.ListBox.ObjectCollection' に変換できません。
------------------------------------------------------------------
どなたかご教授願えれば幸いです。環境はVisualBasic2010+WindowsXPです。
お礼
頂いたヒントを元に悪戦苦闘してましたが、DoubleからStringへ の変換の実例が、ネット上ではほとんど見つけることができません。 MSDNで、「両方の配列の要素のデータ型が、参照型である必要があります」となっていますし、配列の型を変えてしまうと後々不便な ので、ListBoxへのAddの時だけ一時的にArrayListに取り込む ようなことをするしかないのかなぁと思っています。 ListBox1.Items.AddRange(New ArrayList(Test_arr).ToArray) ↑の通り、とりあえずこれでやっています。 もうちょっと調べてみるつもりです。 ヒントをいただいてありがとうございました。