C# linq根据属性分组,并累加计算

     #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
原文地址:https://www.cnblogs.com/yuanshuo/p/13928490.html