0

我必须编写两个 LINQ 查询,一个返回前 6 行,另一个返回不包括前 6 行的数据:

TOP 6:
from m in MyTable
take 6
select m.Foo

我需要帮助如何找出第二个查询。

4

3 回答 3

1

试试MyTable.Skip(6)。我认为在查询语法中没有办法做到这一点。阅读更多关于这里Take这里的信息。Skip

于 2013-05-27T14:04:57.113 回答
0

使用(根据您的 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行开始选择”

于 2013-05-27T14:07:22.740 回答
0

要获取除前 6 行之外的所有行,请使用Skip()

var allButFirst6 = (from m in MyTable
  select m.Foo).Skip(6);

请注意,某些 LINQ 提供程序需要对列表进行排序才能使用SkipTake. 如果是这种情况,则在使用orOrderBy之前使用 对列表进行排序。SkipTake

于 2013-05-27T14:37:46.227 回答