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); |
碉堡了!