"IQueryable and IEnumerable"区别

来源:互联网 发布:上瘾网络剧英文插曲 编辑:程序博客网 时间:2024/05/09 17:42
Answer: 
"IQueryable" 有延时加载机制;而且从数据库中筛选数据;
IEnumerable 从数据库中选择所有的数据,在内存中做筛选
var 默认等效于IEnumerable 

C#范例代码:
class Program    {        static void Main(string[] args)        {            List<int> ints = new List<int>();            for (int i = 0; i < 1000; i++)            {                ints.Add(i);            }            // 延时加载,在数据库中筛选;            //lazy loading, filter from database             IQueryable<int> query1 = (from c in ints                                   where c > 50                                   select c).AsQueryable();            var res1 = query1.Where(r => r > 50);            // 立即加载,同时,在内存中筛选            // filter in memory            IEnumerable<int> query2 = from c in ints                        where c > 50                        select c;            var res2 = query2.Where(r => r > 50);            // 默认是IEnumerable            // default is IEnumerable            var query3 = from c in ints                                      where c > 50                                      select c;            var res3 = query3.Where(r => r > 50);        }    }



0 0
原创粉丝点击