LINQ按空列排序,其中顺序升序,并且空值应为最后

我正在尝试按价格对产品列表进行排序。

结果集需要按列从低到高的价格列出产品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都是对集合的单独操作,每次都会对其进行重新排序。

这应该先对值排序,然后“对”值排序。

以上是 LINQ按空列排序,其中顺序升序,并且空值应为最后 的全部内容, 来源链接: utcz.com/qa/430571.html

回到顶部