C# - AsEnumerable示例

2 c# enumeration

AsEnumerable的确切用途是什么?它会将非可枚举的集合更改为可枚举的集合吗?.请给我一个简单的例子.

Luk*_*keH 8

从MSDN文档的"备注"部分:

AsEnumerable<TSource>除了将源代码的编译时类型从实现的类型更改IEnumerable<T>IEnumerable<T>自身之外,该方法没有任何效果.

AsEnumerable<TSource>可用于在序列实现时在查询实现之间进行选择,IEnumerable<T>但也可以使用不同的公共查询方法集.例如,给定泛型类Table 实现IEnumerable<T>,并有自己的方法,如Where,SelectSelectMany,调用Where将调用公共 Where的方法Table.甲Table表示数据库表类型可以有一个Where,是以谓词参数作为表达式树并转换树到SQL远程执行的方法.如果不需要远程执行,例如因为谓词调用本地方法,则该AsEnumerable<TSource> 方法可用于隐藏自定义方法,而是使标准查询运算符可用.


Jef*_*Cyr 6

如果你看看反射器:

public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source)
{
    return source;
}
Run Code Online (Sandbox Code Playgroud)

它基本上只是向下转换实现IEnumerable的东西.