我必须编写两个 LINQ 查询,一个返回前 6 行,另一个返回不包括前 6 行的数据:
TOP 6:
from m in MyTable
take 6
select m.Foo
我需要帮助如何找出第二个查询。
我必须编写两个 LINQ 查询,一个返回前 6 行,另一个返回不包括前 6 行的数据:
TOP 6:
from m in MyTable
take 6
select m.Foo
我需要帮助如何找出第二个查询。
使用除(根据您的 C# 类语法):
var fullList = from m in MyTable select m.Foo;
var top6 = from m in MyTable take 6 select m.Foo;
var top6except = fullList.Except(top6);
这不包括检索到的前 6 行,通常不包括前 6 行。使用Skip
方法实现通用的“从第7行开始选择”
要获取除前 6 行之外的所有行,请使用Skip()
:
var allButFirst6 = (from m in MyTable
select m.Foo).Skip(6);
请注意,某些 LINQ 提供程序需要对列表进行排序才能使用Skip
和Take
. 如果是这种情况,则在使用orOrderBy
之前使用 对列表进行排序。Skip
Take