使用次要排序对linq查询进行排序

16

可能是重复问题:
LINQ中的多个“order by”

我有一个订单列表,我需要按订单日期排序,然后按订单价格进行第二次排序。我不确定应该如何做,因为我尝试了 orders.OrderBy(o => o.Date).OrderBy(o => o.Price),但它不起作用。非常感谢任何帮助。谢谢。


2
今天我看到了好多完全相同的问题,真是奇怪。 - Phillip Schmidt
我不是有意冒犯,但我刚刚在谷歌上搜索了“使用Linq查询进行排序并进行二次排序”,并在第一页找到了答案,它是一个SO的帖子。 - Nathan
2
实际上,这是 此问题此问题此问题此问题此问题此问题等的副本。 - Phillip Schmidt
抱歉,我是新来的这个网站...试图找到它但我错过了。谢谢。 - Shane
3个回答

35
您想使用ThenBy函数: orders.OrderBy(o => o.Date).ThenBy(o => o.Price)

3
另一个选择是使用LINQ查询语法而不是方法语法: ```

另一个选择是使用 LINQ 查询语法而不是方法语法:

```
 List<Order> sortedOrders = from o in orders
 orderby o.Date, O.Price
 select o;

如果我理解正确 - 在“orderby”中使用由逗号分隔的两个字段会导致一种分组形式,如果o.Date具有相同日期值的一堆记录,则按匹配日期升序排序记录O.Price。 - Martin Sansone - MiOEE
没错,就是这样。和被接受的答案一样,只是使用了不同的语法。 - scott.korin

1
您可以使用以下代码:

orders.OrderBy(o => o.Date).ThenBy(o => o.Price)

该代码与IT相关。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接