Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 最大计数LINQ组_Vb.net_Linq - Fatal编程技术网

Vb.net 最大计数LINQ组

Vb.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 我想把这些聚合成这样

我把这个表命名为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
我想把这些聚合成这样的东西

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) _
})
工作起来很有魅力!:)谢谢