IOrderedQueryable <t>和Take()</t>

时间:2012-09-10 07:21:58

标签: c# linq linq-to-sql

如果定义了 count ,我需要订购IQueriable(LINQ to SQL方法的结果)并返回第一个 count 元素。我使用以下代码:

IOrderedQueryable<MainLog> list = logs.OrderByDescending(item => item.Time);
if (count > 0) list = list.Take(count).OrderByDescending(item=>item.Time);

它工作正常,但我不喜欢两次调用OrderByDescending。我可以在不违反订单的情况下做得更好而且没有双重订购吗?

1 个答案:

答案 0 :(得分:2)

绝对不需要第二个OrderByDescending。只需删除它:

IQueryable<MainLog> list = logs.OrderByDescending(item => item.Time); 
if (count > 0)
    list = list.Take(count);