Vb.net 最大计数LINQ组
我把这个表命名为ProjectsVb.net 最大计数LINQ组,vb.net,linq,Vb.net,Linq,我把这个表命名为Projects Name Date Hours p1 1/1/13 1 p1 1/8/13 2 p1 1/9/13 1 p2 1/3/13 5 p2 1/4/13 3 我想把这些聚合成这样
Name Date Hours
p1 1/1/13 1
p1 1/8/13 2
p1 1/9/13 1
p2 1/3/13 5
p2 1/4/13 3
我想把这些聚合成这样的东西
p1 Tue 4
p2 Thu 8
我不知道如何获得日期的最大计数。工作日部分。。
到目前为止,我试过这样的方法
Dim qry = From er in Projects
Group er by er.Name Into Max(er.Date.Value.Weekday), Sum(er.Hours)
但这会给我p1的“Wed”,因为它比“Tue”高。我真正想要的是“Tue”,因为它有更多的记录n“Wed”找到条目最多的日期的诀窍是按天分组,然后按每组中条目的数量对组进行排序,然后抓取第一个条目
Dim query = Projects.GroupBy(Function(e) e.Name, Function(name, groupedEntries) New With { _
.Name = name, _
.TopDay = groupedEntries.GroupBy(Function(e) e.[Date].DayOfWeek).OrderByDescending(Function(g) g.Count()).First().Key, _
.TotalHours = groupedEntries.Sum(Function(e) e.Hours) _
})
工作起来很有魅力!:)谢谢