.net 将ObjectCollection中的项添加到IList(SomeType)
如何将ObjectCollection项添加到IList(某种类型)? 我试过:.net 将ObjectCollection中的项添加到IList(SomeType),.net,vb.net,collections,object,ilist,.net,Vb.net,Collections,Object,Ilist,如何将ObjectCollection项添加到IList(某种类型)? 我试过: For Each obj As SomeType In listBox.Items 'ObjectCollection MyObject.ItProperty.Add(obj) 'IList Next 没有成功。 谢谢。如果可能,非通用的IList接口将是最简单的方法: IList list = (IList)MyObject.ItProperty; list.Add(obj); 否则,您必须: 找到
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
- 从
解析IList
方法(使用反射)Add
- 调用
方法(使用反射)Add
dynamic
,但请注意,这只会看到公共API。值得一试(仅当IList失败时):
你能补充一些失败的细节吗?你的代码应该可以工作
如果您遇到异常
“无法将类型为“XXX”的对象强制转换为类型为“SomeType”。
在“为每个obj
”行,则列表框中至少有一个项。项集合不是类型为“SomeType”的。我认为您缺少一些文本。它以“我试过了:”结尾。我已经改变了。对不起,谢谢你。
dynamic list = MyObject.ItProperty;
list.Add(obj); // let's hope Add isn't an explicit interface implementation