LINQ如何做SELECT TOP操作

我们知道,LINQ和SQL语句不是一回事,虽然他们看上去很相似。LINQ里没有"TOP"这个关键字,然而我们有时候需要选择一定数量的对象,肿么办呢?

最2的办法是:先把对象全部选出,再写个循环,把不要的结果一个个剔除。这种方法显然不是我们想要的。

刚开始我是这样写的:

int i = 3
var query = from m in mList where --i >= 0 select m

我用一个变量来限制输出的条件,来模拟“TOP”的效果。但这样写不科学,这是一种代码的“坏味道”。为了完成操作A,而引入一个不太相关A流程的辅助操作B。如果代码比较复杂,又没写注释,就容易混淆逻辑。

后来经过高手指点发现这样写就可以:

var query = (from m in mList select m).Take(3);

碉堡了! 

posted @ 2012-06-28 11:32  赤狐(zcm123)  阅读(517)  评论(0编辑  收藏  举报