C# List中Group by的用法

     var sums = WxMeetingUserInfoGroupList.Where(gro => gro.GroupName != "").GroupBy(x => new { x.GroupName }).Select(t => new
                    {
                        GroupName = t.Key,
                        peopleSum = t.Count(),
                        NumSum = t.Sum(s => s.Num)
                    });

                    foreach (var gg in sums)
                    {
                        GroupData groupData = new GroupData();
                        groupData.GroupName = gg.GroupName.GroupName;
                        groupData.peopleSum = gg.peopleSum;
                        groupData.NumSum = gg.NumSum;
                        groupData.MaxPeople = gp;
                        GroupDataList.Add(groupData);
                    }

内部结构:

flowJumps = this.FlowJumps;  
//按工序groupby flowjumps  
IEnumerable<IGrouping<int, FlowJump>> query =  
flowJumps.GroupBy(pet => pet.processID, pet => pet);  
foreach (IGrouping<int, FlowJump> info in query)  
{  
List<FlowJump> sl = info.ToList<FlowJump>();//分组后的集合   
//也可循环得到分组后,集合中的对象,你可以用info.Key去控制   
//foreach (FlowJump set in info)   
//{   
//}   
}  

 

posted on 2017-09-11 14:47  花生哒哒  阅读(14034)  评论(0)    收藏  举报

导航