SQL脚本转Linq,突然蒙圈了
各位高手,先看SQL,然后翻译成Linq,如果SQL都不知道怎么写的请飘过~
很简单的表A有“行业、指数、人物”三列,数据如下:
行业 指数 人物
影视 70 刘亚鹏
影视 90 黄渤
影视 80 范冰冰
音乐 90 张学友
音乐 80 周杰伦
音乐 85 陈奕迅
主持 90 孟非
主持 80 张绍刚
想要选出各个行业指数最高的人物。最终结果应该如下:
行业 指数 人物
影视 90 黄渤
音乐 90 张学友
主持 90 孟非
用SQL选取比较简单,但是Linq怎么写呢?
我初学Linq突然蒙圈了,各位大侠指点下哈,小弟先谢过!
SQL Linq GroupBy Max
[解决办法]
不就是个order by
http://kb.cnblogs.com/page/42469/
[解决办法]
data.GroupBy(x => x.行业).Select(x => x.OrderBy(y => y.指数).Last())
[解决办法]
当然你可以把两行写在一起。
var query = data.GroupBy(x => x.行业).Select(x => new { 行业 = x.Key, 指数 = x.Max(y => y.指数) }).Select(x => data.First(y => y.行业 == x.行业 && y.指数 == x.指数));
[解决办法]
从你的需求来看,一句代码即可搞定:
var query=db.table1.GroupBy(t=>t.行业).Select(g=>g.OrderByDescending(x=>x.指数).First());