linq语法 实现group by 分组(二)

linq语法 实现group by 分组(二)
作者:秋名
撰写时间:2020 年 6 月 07 日
需求:在宿舍里加上每个人的姓名。。安排。。。

  public JsonResult Select_ChuangWei()
        {
var listTitle = (from tbHB宿管宿舍床位 in myModel.HB宿管宿舍床位
     join tbHB宿管宿舍 in myModel.HB宿管楼栋宿舍 on tbHB宿管宿舍床位.宿舍ID equals tbHB宿管宿舍.宿舍ID
     join tbHB宿管床位类型与价格 in myModel.HB宿管床位类型与价格 on tbHB宿管宿舍.房型床位类别ID equals tbHB宿管床位类型与价格.房型床位类别ID
     join tbG机构学生 in myModel.G机构学生 on tbHB宿管宿舍床位.分配机构学生ID equals tbG机构学生.机构学生ID
						 select new SuShe
						 {
						 床位ID=tbHB宿管宿舍床位.床位ID,
						 宿舍ID= tbHB宿管宿舍床位.宿舍ID,
						 房型床位类别ID=tbHB宿管宿舍.房型床位类别ID,
						 机构学生ID=tbG机构学生.机构学生ID,
						 姓名=tbG机构学生.姓名,
						 房型床位类别MC =tbHB宿管床位类型与价格.房型床位类别MC,
						 宿舍编码 = tbHB宿管宿舍.宿舍编码.Trim(),
						 床位编码=tbHB宿管宿舍床位.床位编码,
						 本床位本次起住时间 =tbHB宿管宿舍床位.本床位本次起住时间,
						 }).ToList();
    var listBrand = (from tb in listTitle
         group tb by tb.宿舍编码 into GrBrand
         select new SuShe
{
   床位ID = GrBrand.OrderByDescending(m => m.床位ID).FirstOrDefault().床位ID,
   机构学生ID = GrBrand.OrderByDescending(m => m.分配机构学生ID).FirstOrDefault().机构学生ID,
   宿舍编码 = GrBrand.OrderByDescending(m => m.宿舍ID).FirstOrDefault().宿舍编码.Trim(),
   房型床位类别MC = GrBrand.OrderByDescending(m => m.房型床位类别ID).FirstOrDefault().房型床位类别MC,
   学生名称MC = ArrayToString(GrBrand.Select(m=>m.姓名).ToArray()),
   //将学生姓名放到数组里,调用ArrayToString方法将其循环
    姓名 = GrBrand.Count(m => {  return true; }).ToString(),
 }).ToList();

  return Json(listBrand, JsonRequestBehavior.AllowGet);
  }
  
  
 //定义方法循环group by里面学生姓名的数据。
 private string ArrayToString(string[] array)
{
            var str = "";
            foreach (var item in array)
            {
                str += item==null?"":item.Trim()+ ",";
            }
            str=str.TrimEnd(',');//移除最后一个字符
            return str;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值