排序LinQ c#

排序LinQ c#,c#,linq,C#,Linq,我试着按照日期值来订购LINQ,显示今天的第一个日期和倒计时,但在我的实际LINQ中,这些值并没有安排好,它们有时按天订购,有时按月订购,但从不从今天开始 这是我的LINQ: foreach (var item in db.VENTA_PLATILLOS.Select(l => l.Fecha) .Distinct().OrderByDescending(x => x.Month == result.Month && x.Day == result.

我试着按照日期值来订购LINQ,显示今天的第一个日期和倒计时,但在我的实际LINQ中,这些值并没有安排好,它们有时按天订购,有时按月订购,但从不从今天开始

这是我的LINQ:

foreach (var item in db.VENTA_PLATILLOS.Select(l => l.Fecha)
         .Distinct().OrderByDescending(x => x.Month == result.Month && x.Day == result.Day))
{
    dateday = item.ToString("yyyy-MM-dd");
    var listItem = new SelectListItem { Value = dateday, Text = dateday };
    listItem.Selected = result.Day == item.Day;
    listdate.Add(listItem);
}
我怎样才能先按实际日期正确订购

编辑********

值来自Datetime模型变量,我将添加一些日期示例:

2016-11-06 00:00:00.000
2016-11-05 00:00:00.000
2016-11-04 00:00:00.000
2016-11-03 00:00:00.000
2016-11-02 00:00:00.000
2016-10-31 00:00:00.000
2016-10-29 00:00:00.000
像这样

编辑2*****

现在修好了 在对我的模型做了一些修改后,按月再按天订购终于奏效了

        .OrderByDescending(x => x.Month)
        .ThenByDescending(x => x.Day)
LINQ提供了
然后是降序
,这将允许您在初始订单之后进行订购

但你应该能做到这一点


.OrderByDescending(x=>x)
因为您已经在一个日期时间上进行了迭代

你不需要像Stackoverflower已经提到的那样在x点餐吗?l、 Fecha似乎是一个日期时间:

var items = from item in db.VENTA_PLATILLOS.Select(l => l.Fecha)
     .Distinct()
     .OrderByDescending(x => x)
    let dateday = item.ToString("yyyy-MM-dd")
    select new SelectListItem {Value = dateday, Text = dateday, Selected = result.Day == item.Day};
listdate.AddRange(items);

x.Month==result.Month&&x.Day==result.Day
计算结果为
true
/
false
。您是按布尔值排序,而不是按日期排序。为什么他不能按降序(x=>x)
?这不是Fecha的DateTime吗?@StackOverflower,我想你是对的,他不需要任何技巧,只需要OrderByDescending(x=>x)。OrderByDescending(x=>x)仍然会按匹配的日期和月份(2016-10-10第一个)给我排序的值:/结果是什么?是今天的日期吗?尽管我的第一个显示值是“2016-10-10”,但他们是按匹配的月份和日期倒计时排序的,如“10-10”、“09-09”:/我如何解决这个问题?我不明白是什么问题。你能给我一些日期吗?如果你能告诉我你迭代的属性,这怎么不能通过按日期排序来解决呢。是月-日-年,还是您有日期属性?使用月-日,您不会按日期订购,而是按月-日订购(即:2017/01/01将在2016/02/01之前)。包括年份,因此只需按日期排序。@ArturoMartinez你试过我在帖子中提出的第二个建议了吗?如果有效,请接受答案。