質問: Form 部品のComboBoxにデータベースで検索したオブジェクトのリスト(List)を ComboBox.Items.AddRangeで設定してます。(良くあるケースだと思います。) このComboBoxのオブジェクトの内容を編集してDBに登録する処理を作成中なのですが、ComboBoxに設定したオブジェクトのリストを取り出す方法がわかりません。 分かりましたら、ご教示頂きたく。 よろしくお願いいたします。 ComboBoxのDataSourceに設定するしかないのでしょうか。。
回答: `ComboBox`の`Items`コレクションは追加した値をそのまま保持していますので、キャストによって元のオブジェクトを取り出すことが出来ます。コード中の`T`には実際に追加した型を指定してください。 ``` T item = (T)comboBox1.Items[0]; ``` コレクションとして取り出すのであればLINQの`Cast()`/`OfType()`と`ToList()`/`ToArray()`を組み合わせて使うのが手軽です。 ``` List items1 = comboBox1.Items.Cast().ToList(); T[] items2 = comboBox1.Items.OfType().ToArray(); ```