我有一个带有的车型
- 车辆ID
- 车辆名称
数据库中的列表
- 奥迪
- 玄代
- 丰田
- Marcedes
- 其他
- Accura
- 斯巴鲁
- 本田
我以前用过这样的东西。以对要在视图中表示的列表的顺序进行排序。
@{var veh=(IEnumerable)ViewBag.Vehicles;veh=veh。OrderByDescending(v=>v.Name!="Other")。ThenBy(v=>v.Name);}
现在我想按以下顺序显示结果。
- 奥迪
- 玄代
- Marcedes
- 丰田
- Accura
- 斯巴鲁
- 本田
- 其他
按"其他"之前的列表排序,然后按字母顺序排列左列表。最后使用"其他"
我希望我能解释得更好。非常感谢您的帮助。感谢
@{var veh = (IEnumerable<Vehicle>)ViewBag.Vehicles; veh = veh.OrderByDescending(v => v.Name != "Other").ThenBy(v => Convert.ToInt32(v.IsActive)==0).ThenBy(v=>v.Name);}
@foreach (Vehicle v in veh)
{
<div class="col-xs-4">
<input type="checkbox" name="VehicleId" value="@v.VehicleId" id="@v.VehicleId" />
<span for="@v.VehicleId">@v.Name</span><br />
</div>
}
这通过在查询中使用外部变量来作弊,但它有效。。
var cars = new string[] {"Audi", "Hyndai", "Toyota", "Marcedes",
"Other", "Accura", "Subaru", "Honda"};
int seen = 0;
var list = from car in cars
let order = (car=="Other") ? seen=2 : (seen==2 ? 1 : 0)
orderby order, car
select car;
list.Dump();