我正在尝试按价格对产品列表进行排序。
结果集需要按LowestPrice
列的价格从低到高列出产品。但是,此列可以为空。
我可以像这样按降序对列表进行排序:
var products = from p in _context.Products
where p.ProductTypeId == 1
orderby p.LowestPrice.HasValue descending
orderby p.LowestPrice descending
select p;
// returns: 102, 101, 100, null, null
但是我不知道如何按升序对其进行排序。
// i'd like: 100, 101, 102, null, null
最佳答案
尝试将两列放在相同的顺序中。
orderby p.LowestPrice.HasValue descending, p.LowestPrice
否则,每个 orderby 都是对集合的单独操作,每次都会对其重新排序。
这应该首先对具有值的那些进行排序,“然后”是值的顺序。
关于c# - LINQ 按空列排序,其中顺序是升序的,空值应该排在最后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6461479/