我正在尝试订购我的列表卡但是将零推到最后。我在这里阅读了一些回复并尝试了解决方案,但它似乎没有用。
请参阅下面的我的linq查询。 (ToPackCards只是映射到我的自定义对象的扩展名)
List<PackCard> packCards = db
.PackCardEntities
.OrderBy(pc => pc.PackNumber)
.ThenBy(pc => pc.PickPosition == 0)
.ThenBy(pc => pc.PickPosition)
.ToList()
.ToPackCards();
我的数据看起来像这样
ID | PackNumber | PickPosition | CardId中
1|1|null|100
2|1|null|120
3|1|1|134
4|1|2|232
5|1|null|456
我想要按照这样排序
3|1|1|134
4|1|2|232
1|1|null|100
2|1|null|120
5|1|null|456
我得到的是这个
1|1|null|100
2|1|null|120
5|1|null|456
3|1|1|134
4|1|2|232
如果我以某种方式搞砸了,请告诉我,谢谢!
答案 0 :(得分:1)
试试这个
List<PackCard> packCards = db.PackCardEntities
.OrderBy(pc => pc.PackNumber)
.ThenBy(pc => pc.PickPosition.HasValue? pc.PickPosition : int.MaxValue)
.ToList().ToPackCards();
答案 1 :(得分:1)
List<PackCard> packCards = db
.PackCardEntities
.OrderBy(pc => pc.PackNumber)
.ThenBy(pc => pc.PickPosition == null)
.ThenBy(pc => pc.PickPosition)
.ToList()
.ToPackCards();