ViewBag上的LinQ Order By

时间:2016-03-08 18:58:08

标签: c# html asp.net-mvc linq

我尝试按照LInQ语句中的寄存器进行排序,然后将它们保存在List上但是我无法这样做,这些项目会不断变得无序

这是我的LinQ

 foreach (var item in db.Pos.OrderByDescending(x => x.Fecha).Select(l => l.Fecha).Distinct())
        {
           dateday = item.ToString("yyyy-MM-dd");
           var listItem = new SelectListItem { Value = dateday, Text = dateday };
           listItem.Selected = today.Day == item.Day;
           listdate.Add(listItem);

        }
        ViewBag.Fechas = listdate;

但这是我的观点输出:

<select id="Fechas" name="Fechas"><option value="2016-03-06">2016-03-06</option>
<option value="2016-03-04">2016-03-04</option>
<option value="2016-03-07">2016-03-07</option>
<option value="2016-03-01">2016-03-01</option>
<option value="2016-03-02">2016-03-02</option>
<option value="2016-03-05">2016-03-05</option>
<option selected="selected" value="2016-03-08">2016-03-08</option>
<option value="2016-03-03">2016-03-03</option>
</select> 

这是我需要的输出:

<select id="Fechas" name="Fechas">
<option selected="selected" value="2016-03-08">2016-03-08</option>
  <option value="2016-03-07">2016-03-07</option>
  <option value="2016-03-06">2016-03-06</option>
  <option value="2016-03-05">2016-03-05</option>
  <option value="2016-03-04">2016-03-04</option>
  <option value="2016-03-03">2016-03-03</option>
  <option value="2016-03-02">2016-03-02</option>
  <option value="2016-03-01">2016-03-01</option>

</select> 

1 个答案:

答案 0 :(得分:5)

Distinct明确指出不会保留返回结果的顺序。您需要在执行Distinct后订购商品