如何将ObjectCollection项添加到IList(Of SomeType)? 我尝试过:
For Each obj As SomeType In listBox.Items 'ObjectCollection
MyObject.ItProperty.Add(obj) 'IList
Next
没有成功。 谢谢。
答案 0 :(得分:1)
如果可能,非通用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
答案 1 :(得分:0)
您可以添加一些有关失败和失败的详细信息吗?你的代码应该有用。
如果您在“"Unable to cast object of type 'XXX' to type 'SomeType'."
”行收到异常For Each obj
,则listBox.Items集合中至少有一个项目不属于“SomeType”类型。