C# linq 两个字段 排序

比如说有一个student类,有两个字段score分数year年龄,需求根据score的大小进去排序,如果score相等year大的超前需求根据score的大小进去排序会... 比如说有一个student类,有两个字段score分数 year年龄,
需求根据score的大小进去排序,如果score相等year大的超前
需求根据score的大小进去排序会写,
如果score相等year大的超前这个就不会写了
这个是从大到小的排序
var pn = (from min blist orderby m.score descending select m);
答案已经找到了
var pn = blist.OrderBy(m=>m.score).ThenBy(m=>m.year).ToList();
但是排序是从小到大,如何从大到小呢
展开
 我来答
然后去远足
推荐于2017-12-16 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2450万
展开全部

多个字段就是在原来的基础上再次排序,参考:

var pn = (from m in (from m in blist orderby m.score descending select m) orderby m.year descending select m);
追问
我测试没效果,没排序提交追问
追答

= = 在我这测试正常呀……题主在试一下这种写法:

var pn = (from m in blist orderby m.score descending, m.year descending select m);

还有题主补充的已经不是通常意义上讲的 Linq 了而是 Lamda 表达式(虽然二者有一定关系)了,这种写法里 OrderBy、ThenBy 是升序的,OrderByDescending、ThenByDescending 是降序的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式