AsEnumerable<TSource>除了将源代码的编译时类型从实现的类型更改IEnumerable<T>为IEnumerable<T>自身之外,该方法没有任何效果.
AsEnumerable<TSource>可用于在序列实现时在查询实现之间进行选择,IEnumerable<T>但也可以使用不同的公共查询方法集.例如,给定泛型类Table实现IEnumerable<T>,并有自己的方法,如Where,Select和SelectMany,调用Where将调用公共Where的方法Table.甲Table表示数据库表类型可以有一个Where,是以谓词参数作为表达式树并转换树到SQL远程执行的方法.如果不需要远程执行,例如因为谓词调用本地方法,则该AsEnumerable<TSource>方法可用于隐藏自定义方法,而是使标准查询运算符可用.
如果你看看反射器:
public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source)
{
    return source;
}
它基本上只是向下转换实现IEnumerable的东西.