我想获得一个按三个属性排序的列表,优先级为
我的代码在这里
MyList
.OrderByDescending(p => p.ToDate)
.OrderByDescending(p => p.Number)
.OrderByDescending(p => p.RunDate)
.FirstOrDefault();
但结果不正确。
例如,当MyList
包含两个元素时:e1,e2和e1.ToDate> e2.ToDate,结果是e2。
哪个属性应该先来?具有最高优先级(ToDate)或最低优先级(RunDate)的属性?
答案 0 :(得分:23)
我怀疑你真的想要:
MyList
.OrderByDescending(p => p.ToDate)
.ThenByDescending(p => p.Number)
.ThenByDescending(p => p.RunDate)
.FirstOrDefault();
在您使用ThenBy
或ThenByDescending
提供主要订单后, OrderBy
和OrderByDescending
用于指定次要订单。