繁体   English   中英

组和LINQ到SQL求和

[英]group and sum in linq to sql

我想总结基于studentId的DayDifference

 List<Timeliness> studentData = (from redt in RoundEndDateTable.AsEnumerable()
                                                join st in Activity on redt.Field<string>("strActivityName") equals st.ActivityName
                                                orderby (DateTime.Parse(redt.ItemArray[1].ToString()) - DateTime.Parse(st.RewardType.ToString())) descending
                                                select new Timeliness
                                                {

                                                    DayDifference = int.Parse((DateTime.Parse(redt.ItemArray[1].ToString()) - DateTime.Parse(st.RewardType)).ToString().Split('.')[0]),
                                                    StudentId = st.AssociateId.ToString()
                                                }).ToList();

我尝试了以下代码

var groupedCustomerList = studentData
    .GroupBy(u => u.StudentId)
    .Select(grp => grp.ToList())
    .ToList();

不确定上述代码中的总和在哪里

在第一个查询中,我重复获取学生证

例如:

[0]  - studentid:123 DayDifference:16
[1]  - studentid:123 DayDifference:8
[2]  - studentid:121 DayDifference:16

我需要

[0]  - studentid:123 DayDifference:24
[2]  - studentid:121 DayDifference:16

这应该创建一个匿名类型的集合,其中包含每个“ Key”(StudentId)和每个StudentId的“ DayDifference”值之和:

var result =
    studentData.GroupBy(u => u.StudentId)
               .Select(grp => new { Id = grp.Key, TotalDiff = grp.Sum(x => x.DayDifference) })
               .ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM