您的位置:首页 > 产品设计 > UI/UE

"IQueryable and IEnumerable"区别

2016-10-04 07:21 423 查看
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);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#