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;
}

10-05 18:33