我有这个功能,它以相反的顺序显示消息列表。
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()是唯一的方法吗?
答案 0 :(得分:6)
您只想使用OrderByDescending
扩展方法,而不是OrderBy
。
实际上,这将是一种更有效的方法,因为它只需要一次迭代而不是两次。
messages.AddRange(Messages.OrderByDescending(message => message.DateAdded));
答案 1 :(得分:3)
messages.AddRange( Messages.OrderByDescending( message => message.DateAdded ) );
事实上,你可以简化整个事情:
protected void setupMessages(IList<Message> Messages)
{
MessagesRepeater.DataSource = Messages.OrderByDescending( message => message.DateAdded )
.ToList();
MessagesRepeater.DataBind();
}