我必须编写两个LINQ查询,其中一个返回TOP 6行,另一个返回不包括TOP 6行的数据:
TOP 6:
from m in MyTable
take 6
select m.Foo
我需要帮助如何找出第二个查询。
答案 0 :(得分:1)
答案 1 :(得分:0)
使用Except(根据您的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行开始选择”
答案 2 :(得分:0)
要使用前6行中的所有行,请使用Skip()
:
var allButFirst6 = (from m in MyTable
select m.Foo).Skip(6);
请注意,某些LINQ提供商要求订购列表才能使用Skip
和Take
。如果是这种情况,请在使用OrderBy
或Skip
之前使用Take
订购列表。