关于c#:IQueryable – 为什么它比IEnumerable更好?

IQueryable - Why is it better then IEnumerable?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What is the difference between IQueryable and IEnumerable?

我读了很多关于iqueryable的文章,但我仍然不明白什么时候使用iqueryableProvider的方法,以及它的用途。

我的英语不太好,所以理解这篇文章对我来说是不可能的。http://blogs.msdn.com/b/mattwar/archive/2007/07/30/linq-building-an-iqueryable-provider-part-i.aspx

*不要告诉我对集合使用IEnumerable,对SQL使用IQueryable,因为我们可以分别对集合和SQL使用IEnumerable。


IEnumerable非常接近于可以迭代的集合的最简单接口,就像在foreach循环中那样。

IQueryable是一个查询生成器,它保存一个可以添加到的LINQ查询,直到您对强制它执行并返回集合的查询执行某些操作。


iQuery提供了针对特定数据源(其中未指定数据类型)评估查询的功能。而IEnumerable只允许一种循环方式。

所以,总之,

Queryable允许您对数据进行interigate

Enumerable允许您遍历数据的每个元素