可能的重复:
如何在反射中使用IEnumerable 迭代反射问题中的列表
嗨,
我在反思中迭代List时遇到了问题.
var item = property.GetValue(obj,null); // We dont know the type of obj as it is in Reflection.
foreach(var value in (item as IEnumerable))
{
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我会得到错误
使用泛型类型'System.Collections.Generic.IEnumerable'需要1个类型参数
请帮我.
类型IEnumerable和泛型类型之间存在差异IEnumerable<T>.目前它认为你的意思是通用的,因为你已经包含了命名空间System.Collections.Generic; 错误消息是抱怨,因为您没有IEnumerable<T>正确编写泛型类型.
非泛型IEnumerable类型在System.Collections命名空间中声明,因此添加对它的引用.(using System.Collections;).
如果你的意思是使用泛型类型,那么你应该有这样的东西:foreach(var value in (item as IEnumerable<string>))其中string是item枚举的对象类型.
请参阅IEnumerable和IEnumerable <T>以及有关泛型类型的此信息.