12746


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

ComboBoxのDataSourceに設定するしかないのでしょうか。。


CC BY-SA 3.0
2015-07-27T09:23:38.887
12745
2015-07-27T10:52:21.633
9228
question
c# winforms
C# ComboBox に設定した値を取り出したい


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

[code]

    T item = (T)comboBox1.Items[0];
    
[/code]

コレクションとして取り出すのであればLINQの`Cast<T>()`/`OfType<T>()`と`ToList<T>()`/`ToArray<T>()`を組み合わせて使うのが手軽です。

[code]

    List<T> items1 = comboBox1.Items.Cast<T>().ToList();
    T[] items2 = comboBox1.Items.OfType<T>().ToArray();
    
[/code]


CC BY-SA 3.0
2015-07-27T10:52:21.633
12746
2015-07-27T10:52:21.633
5750
12745
answer