在this question之后,为什么在其中使用enumerable
:
Type type = typeof(List<string>);
bool enumerable = (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IEnumerable<>));
返回
false
吗?编辑1
由于上述方法不起作用,确定类是否实现IEnumerable的最佳方法是什么?
最佳答案
在这里,我可能会使用GetListType(type)
并检查null
:
static Type GetListType(Type type) {
foreach (Type intType in type.GetInterfaces()) {
if (intType.IsGenericType
&& intType.GetGenericTypeDefinition() == typeof(IEnumerable<>)) {
return intType.GetGenericArguments()[0];
}
}
return null;
}