zoukankan      html  css  js  c++  java
  • 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;
            }
    有些事可以渐渐改变,有些事却容不得我们慢慢调整,想一想,有那些事是必须立即面对和努力克服的,用坚定的态度去处理吧!快刀斩乱麻,绝不容许坏习惯继续腐蚀我们的心灵!
  • 相关阅读:
    JSTL fn:split()函数
    JSTL判断list是否为空
    oracle 合并列的函数wm_concat
    Eclipse软件使用说明
    Caused by: org.hibernate.HibernateException: identifier of an instance of ... is alterde from
    SpringData JPA详解
    关于JPA方法名创建自动查询
    jquery移除、绑定、触发元素事件使用示例详解
    js String对象中常用方法小结(字符串操作)
    java中list的使用方法
  • 原文地址:https://www.cnblogs.com/syzx/p/6382656.html
Copyright © 2011-2022 走看看