按可枚举列表排序未给出所需结果

时间:2019-05-05 02:08:22

标签: c# asp.net cookies

我有日期列表:

var dates = (from var in variants.AsEnumerable()
     where var.Field<DateTime>("ShowDate").AddHours(-2) > DateTime.Now
     select var.Field<DateTime>("ShowDate").getPresentationFormat()).OrderBy(t => DateTime.Parse(t)).Distinct();

我需要,如果用户选择了一个日期,则日期列表将以所选值作为第一个值。 以下无效。为什么?

 if (Request.Cookies["Selected_Date"] != null)
 {
     var s= Request.Cookies["Selected_Date"].Value;
     dates.OrderBy(x => x.Equals(s));
}

1 个答案:

答案 0 :(得分:1)

您的代码有两个问题:

  • 您不使用OrderBy方法的返回值
  • 所选值将是最后一个,而不是第一个,因为true排在false之后

因此,改进后的版本将是:

var result = dates.OrderBy(x => !x.Equals(s))