• GroupBy 带条件分组求和


     public List<Tuple<string, Tuple<decimal, decimal, decimal, decimal>, Tuple<decimal, decimal, decimal, decimal>>> GetTupeDate(List<ASSENTS_PUBLIC> publicList) 
            {
                //按条件分组求和
                var grouplist = publicList.GroupBy(t => t.WORKUNIT).Select(g => new
                {
                    unitName = unitDal.FindModelByID(Convert.ToInt32(g.FirstOrDefault().WORKUNIT)).UNITNAME,
    
                    Sum = g.Where(c => c.USESTATE == "闲置").Count(),
    
                    originalvalue = Convert.ToDecimal(g.Where(c => c.USESTATE == "闲置").Sum(t => t.ORIGINALVALUE)),
    
                    networth = Convert.ToDecimal(g.Where(c => c.USESTATE == "闲置").Sum(t => t.NETWORTH)),
    
                    impairment = Convert.ToDecimal(g.Where(c => c.USESTATE == "闲置").Sum(t => t.IMPAIRMENT)),
    
    
                    Sum1 = g.Where(c => c.USESTATE == "出租" || c.USESTATE == "部分出租").Count(),
    
                    originalvalue1 = Convert.ToDecimal(g.Where(c => c.USESTATE == "出租" || c.USESTATE == "部分出租").Sum(t => t.ORIGINALVALUE)),
    
                    networth1 = Convert.ToDecimal(g.Where(c => c.USESTATE == "出租" || c.USESTATE == "部分出租").Sum(t => t.NETWORTH)),
    
                    impairment1 = Convert.ToDecimal(g.Where(c => c.USESTATE == "出租" || c.USESTATE == "部分出租").Sum(t => t.IMPAIRMENT))
                });
                //List<Tuple<单位名称, Tuple<项数,闲置原值, 闲置净值, 闲置减值准备>, Tuple<项数,出租或部分出租原值, 出租或部分出租净值, 出租或部分出租减值准备>>>
                List<Tuple<string, Tuple<decimal, decimal, decimal, decimal>, Tuple<decimal, decimal, decimal, decimal>>> TupList = new List<Tuple<string, Tuple<decimal, decimal, decimal, decimal>, Tuple<decimal, decimal, decimal, decimal>>>();
                foreach (var group in grouplist)
                {
                    Tuple<decimal, decimal, decimal, decimal> temp = new Tuple<decimal, decimal, decimal, decimal>(group.Sum, group.originalvalue, group.networth, group.impairment);
                    Tuple<decimal, decimal, decimal, decimal> temp1 = new Tuple<decimal, decimal, decimal, decimal>(group.Sum1, group.originalvalue1, group.networth1, group.impairment1);
                    Tuple<string, Tuple<decimal, decimal, decimal, decimal>, Tuple<decimal, decimal, decimal, decimal>> temp2 = new Tuple<string, Tuple<decimal, decimal, decimal, decimal>, Tuple<decimal, decimal, decimal, decimal>>(group.unitName, temp, temp1);
                    TupList.Add(temp2);
                }
                return TupList;
            }
    有些事可以渐渐改变,有些事却容不得我们慢慢调整,想一想,有那些事是必须立即面对和努力克服的,用坚定的态度去处理吧!快刀斩乱麻,绝不容许坏习惯继续腐蚀我们的心灵!
  • 相关阅读:
    4-18
    Vue学习 2017-4-9
    前端杂谈
    不错的博客哦!
    待整理知识杂项
    Vue学习历程
    王工的权限理解
    【NX二次开发】图标图像
    【转】C++怎么读写windows剪贴板的内容?比如说自动把一个字符串复制.
    获取计算机名
  • 原文地址:https://www.cnblogs.com/syzx/p/6382656.html
Copyright © 2020-2023  润新知