Q:

C# ComboBox に設定した値を取り出したい

Form 部品のComboBoxにデータベースで検索したオブジェクトのリスト(List)を
ComboBox.Items.AddRangeで設定してます。（良くあるケースだと思います。）
このComboBoxのオブジェクトの内容を編集してDBに登録する処理を作成中なのですが、ComboBoxに設定したオブジェクトのリストを取り出す方法がわかりません。
分かりましたら、ご教示頂きたく。
よろしくお願いいたします。
ComboBoxのDataSourceに設定するしかないのでしょうか。。

A:

ComboBoxのItemsコレクションは追加した値をそのまま保持していますので、キャストによって元のオブジェクトを取り出すことが出来ます。コード中のTには実際に追加した型を指定してください。
T item = (T)comboBox1.Items[0];

コレクションとして取り出すのであればLINQのCast<T>()/OfType<T>()とToList<T>()/ToArray<T>()を組み合わせて使うのが手軽です。
List<T> items1 = comboBox1.Items.Cast<T>().ToList();
T[] items2 = comboBox1.Items.OfType<T>().ToArray();

