Lambda查询按日期逆转订单列表

时间:2009-08-20 17:43:39

标签: linq lambda asp.net-3.5

我有这个功能,它以相反的顺序显示消息列表。

 protected void setupMessages(IList<Message> Messages)
 {
     List<Message> messages = new List<Message>() ;
     messages.AddRange( Messages.OrderBy(message => message.DateAdded).Reverse());
     MessagesRepeater.DataSource = messages;
     MessagesRepeater.DataBind();
 }

我想知道是否有办法在不调用反向方法的情况下在lambda查询中反转顺序?或者调用Reverse()是唯一的方法吗?

2 个答案:

答案 0 :(得分:6)

您只想使用OrderByDescending扩展方法,而不是OrderBy

实际上,这将是一种更有效的方法,因为它只需要一次迭代而不是两次。

messages.AddRange(Messages.OrderByDescending(message => message.DateAdded));

答案 1 :(得分:3)

使用OrderByDescending

messages.AddRange( Messages.OrderByDescending( message => message.DateAdded ) );

事实上,你可以简化整个事情:

protected void setupMessages(IList<Message> Messages)
{     
     MessagesRepeater.DataSource = Messages.OrderByDescending( message => message.DateAdded )
                                           .ToList();
     MessagesRepeater.DataBind();
}