C#linq排序并取

mar*_*eto 3 c# linq sql-order-by

我正在用C#linq查询。

选择并保存查询后,我必须对它进行排序并接受15行...

var query = from a 
[...]
select new
{
    a.id,
    a.desc,
}
[...]
Run Code Online (Sandbox Code Playgroud)

这样做之间有什么区别吗?

return query.OrderByDescending(o => o.id).Take(15);
Run Code Online (Sandbox Code Playgroud)

和这个?

return query.Take(15).OrderByDescending(o => o.id);
Run Code Online (Sandbox Code Playgroud)

非常感谢你!

gil*_*uck 7

是的,非常非常。这是操作顺序类型的东西。

假设您有一个数据集

A
F
B
D
F
C
Run Code Online (Sandbox Code Playgroud)

而你做一个return query.Take(3).OrderBy(o => o.name);你会得到

A
B
F
Run Code Online (Sandbox Code Playgroud)

但是,如果这样做,return query.OrderBy(o => o.name).Take(3);您将得到

A
B
C
Run Code Online (Sandbox Code Playgroud)