小编Mat*_*iti的帖子

LINQ,Skip和Take订购

我正在使用Take和Skip进行一些测试,我发现:

var objects = (from c in GetObjects() orderby c.Name select c);
var skipTake = objects.Skip(5).Take(10).ToList();
var takeSkip = objects.Take(10).Skip(5).ToList();
Run Code Online (Sandbox Code Playgroud)

GetObjects()返回由NHibernate生成的IQueryable(3.3.3GA,使用SQL Server 2008 R2 DB).
skipTake和takeSkip包含10个对象的完全相同的序列.
但如果我写

var objects = (from c in GetObjects() orderby c.Name select c).ToList();
var skipTake = objects.Skip(5).Take(10).ToList();
var takeSkip = objects.Take(10).Skip(5).ToList();
Run Code Online (Sandbox Code Playgroud)

skipTake包含与上例相同的序列,而takeSkip包含仅5个对象的不同序列.

将Take和Skip调用应用于IQueryable时会重新排序吗?
我很乐意对此有所了解.

提前致谢.

c# linq nhibernate

5
推荐指数
1
解决办法
2113
查看次数

标签 统计

c# ×1

linq ×1

nhibernate ×1