我尝试按照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>
答案 0 :(得分:5)
Distinct
明确指出不会保留返回结果的顺序。您需要在执行Distinct
后订购商品。