在反射中IEnumerable的问题

Tha*_*ran 2 c# ienumerable

可能的重复:
如何在反射中使用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个类型参数

请帮我.

Geo*_*ett 9

类型IEnumerable和泛型类型之间存在差异IEnumerable<T>.目前它认为你的意思是通用的,因为你已经包含了命名空间System.Collections.Generic; 错误消息是抱怨,因为您没有IEnumerable<T>正确编写泛型类型.

非泛型IEnumerable类型在System.Collections命名空间中声明,因此添加对它的引用.(using System.Collections;).

如果你的意思是使用泛型类型,那么你应该有这样的东西:foreach(var value in (item as IEnumerable<string>))其中string是item枚举的对象类型.

请参阅IEnumerableIEnumerable <T>以及有关泛型类型的信息.