mvc Groupby and Orderby nested



mvc 初学者我有一个地块表,其中包含一个属性Num_of_steps,代表建造房屋的已完成步骤数。

我目前使用它来检索批次信息并按批号排序。

        var ViewModel = new Sub_lot_VM();
        ViewModel.Subdivisions = db.Subdivisions
            .Include(i => i.Lots)
            .ToList();
        if (ViewModel.Subdivisions !=null)   // if data sort by lot number
        {
           foreach (var item in ViewModel.Subdivisions)
              item.Lots = item.Lots.OrderBy(i => i.LotName).ToList();
        }
        return View(ViewModel);
    }     

现在我想将此信息显示为 3 组:

第一个计数介于 1 和 114 之间(活动)的地方,

计数高于 115(或 GTE 115? (完结)(然后按批次名称排序)和

第三组是计数 = 0(未开始)也按批次名称排序。

我一直在尝试思考如何将 .where 和 .groupby lambda 表达式添加到我的方法中,但没有运气。比如.where(I=>i.Lot.Num_of_steps=0).

我还看到我需要一个foreach,其中某些 LINQ 示例不需要foreach。仍然对此感到困惑。

先获取手数,然后使用groupby范围来获取组

from x in
(
    db.Subdivisions.SelectMany(sd => sd.Lots)
)
group x by x.Num_of_steps == 0 ? 3 : x.Num_of_steps < 115 ? 1 : 2 into g 
orderby g.Key
select g.OrderBy(g1 => g1.LotName)

您可以为组指定有意义的名称,而不是 1、2 和 3,但也可以将其推迟到显示时间。这些数字有助于正确排序。

相关内容

  • 没有找到相关文章

最新更新