AsEnumerable的确切用途是什么?它会将不可枚举的集合更改为可枚举的collection?.Please吗?给我一个简单的例子。
发布于 2009-11-19 23:54:25
读完答案后,我猜你仍然缺少一个实际的例子。
我使用它来使我能够在datatable上使用linq
var mySelect = from table in myDataSet.Tables[0].AsEnumerable()
where table["myColumn"].ToString() == "Some text"
select table;发布于 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>并具有自己的方法(如Where、Select和SelectMany )的泛型类Table,对Where的调用将调用Table的公共Where方法。表示数据库表的SQL类型可以有一个Where方法,该方法将谓词参数作为表达式树,并将该树转换为Table以供远程执行。如果不需要远程执行,例如因为谓词调用本地方法,则可以使用AsEnumerable<TSource>方法隐藏自定义方法,而使标准查询操作符可用。
发布于 2009-11-19 23:09:47
如果你看一看反射器:
public static IEnumerable<TSource> AsEnumerable<TSource>(this IEnumerable<TSource> source)
{
return source;
}它基本上除了向下转换实现IEnumerable的东西之外,什么也不做。
https://stackoverflow.com/questions/1763894
复制相似问题