#region linq 方法1 List<ChgDtlVo> sumData = tempList.GroupBy(t => new { t.ChgId, t.OdStd, t.BatNo, t.OdAppno }).Select (m => new ChgDtlVo() { //名称 ChgName = m.First().ChgName,//(t => t.ChgName), //内容(医嘱名称) OdName = m.Max(t => t.OdName), //药品规格 OdStd = m.Max(t => t.OdStd), //药品单位 RxUnit = m.Max(t => t.RxUnit), //费用数量 ChgAmount = m.Sum(t => t.ChgAmount), //药品单价 ChgPrice = m.Max(t => t.ChgPrice), //费用ID ChgId = m.Max(t => t.ChgId), //嘱托说明 OdEntrust = m.Max(t => t.OdEntrust), //待收金额 OdFeeSum = m.Sum(t => t.OdFeeSum), //效期 DgPov = m.Max(t => t.DgPov), //可退数量 OdAccwdrlCnt = m.Sum(t => t.OdAccwdrlCnt), //实退数量 OdWdrlCnt = m.Max(t => t.OdWdrlCnt), //库存数 DesAmt = m.Max(t => t.DesAmt), //库存货位 DesLoc = m.Max(t => t.DesLoc), //批号 BatNo = m.Max(t => t.BatNo), //发药人 SenderName = m.Max(t => t.SenderName), //发药时间 SenderDt = m.Max(t => t.SenderDt), OdAppno= m.Max(t => t.OdAppno) }).ToList(); dgvSummarySheet.DataSource = sumData; #endregion