【随记】关于List集合用Linq GroupBy分组过后的遍历小记

List<LeaderKaoQin> lstLeader = new List<LeaderKaoQin>();//一个List集合
IGrouping<string, LeaderKaoQin> IGroups = null;//由于 group 查询产生的 IGrouping<TKey,TElement> 对象实质上是列表的列表,所以需遍历2次

List<IGrouping<string, LeaderKaoQin>>    deptLeaders = (from m in lstLeader group m by m.DepName into G orderby G.Key select G).ToList();

            //此处需要遍历2次

    double deptJB = 0;
            double deptZC = 0;
            for (int i = 0; i < deptLeaders.Count; i++)
            {
                deptJB = 0;
                deptZC = 0;
                IGroups = deptLeaders[i];
                sbDept.Append(string.Format("'{0}',", IGroups.Key));
      
                foreach (var item in IGroups)
                {
                    deptJB += item.Overtime;
                    deptZC += item.Normal;
                }
                sbDeptJB.Append(string.Format("{0},", deptJB.ToString("f2")));//保留2位小数
                sbDeptZC.Append(string.Format("{0},", deptZC.ToString("f2")));
            }

参考资料:

https://msdn.microsoft.com/zh-cn/library/bb384063.aspx

posted @ 2016-11-16 19:13  钱恩基  阅读(5740)  评论(0编辑  收藏  举报