ObjectCollection アイテムを IList(Of SomeType) に追加するにはどうすればよいですか? 私は試してみました:
For Each obj As SomeType In listBox.Items 'ObjectCollection
MyObject.ItProperty.Add(obj) 'IList
Next
失敗。ありがとうございました。
ObjectCollection アイテムを IList(Of SomeType) に追加するにはどうすればよいですか? 私は試してみました:
For Each obj As SomeType In listBox.Items 'ObjectCollection
MyObject.ItProperty.Add(obj) 'IList
Next
失敗。ありがとうございました。
可能であれば、非ジェネリックIList
インターフェイスが最も簡単なアプローチになります。
IList list = (IList)MyObject.ItProperty;
list.Add(obj);
それ以外の場合は、次のことを行う必要があります。
T
(反射を使用)Add
からメソッドを解決しますIList<T>
Add
(リフレクションを使用)特にジェネリック医薬品についてのその反省は良くありません。
別の方法として、4.0を使用している場合は、を使用してみることができますがdynamic
、これにはパブリックAPIのみが表示されることに注意してください。ただし、試してみる価値はあります(IList
失敗した場合のみ):
dynamic list = MyObject.ItProperty;
list.Add(obj); // let's hope Add isn't an explicit interface implementation
何がどこで失敗したかについて詳細を追加できますか? コードが機能するはずです。
"Unable to cast object of type 'XXX' to type 'SomeType'."
" " 行で例外が発生した場合For Each obj
は、listBox.Items コレクションに「SomeType」タイプではない項目が少なくとも 1 つあります。