Linq显示排序lidt



我有一个带有的车型

  • 车辆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();

相关内容

  • 没有找到相关文章

最新更新