首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# - AsEnumerable示例

C# - AsEnumerable示例
EN

Stack Overflow用户
提问于 2009-11-19 23:01:18
回答 8查看 15.4K关注 0票数 2

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

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-11-19 23:54:25

读完答案后,我猜你仍然缺少一个实际的例子。

我使用它来使我能够在datatable上使用linq

代码语言:javascript
复制
var mySelect = from table in myDataSet.Tables[0].AsEnumerable()
            where table["myColumn"].ToString() == "Some text"
            select table;
票数 0
EN

Stack Overflow用户

发布于 2009-11-19 23:07:54

From the "Remarks" section of the MSDN documentation

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

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

票数 8
EN

Stack Overflow用户

发布于 2009-11-19 23:09:47

如果你看一看反射器:

代码语言:javascript
复制
public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source)
{
    return source;
}

它基本上除了向下转换实现IEnumerable的东西之外,什么也不做。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1763894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档