VB.NET和Linq:汇总数据表列,并在另一列中按日期分组

鲁迪

我有一个typedDataset(ds)及其数据表(dt)。数据表具有列Date(ttmmyyy)和Worktime我想按月汇总工作时间。我已经完成了将工作时间总结为

Dim sum = dt.AsEnumerable().Sum((Function(x) x.Worktime))

我需要按月分组帮助。

卡洛斯·兰德拉斯(Carlos Landeras)

我用您的字段创建了一个表,以下查询很好用:

 Dim query = From row In dt
          Group row By VarDate= row.Field(Of DateTime)("Date") Into MonthGroup = Group
          Select New With {
              Key VarDate,
              .Worktime = MonthGroup.Sum(Function(r) r.Field(Of Int32)("Worktime"))
         }

使用变量VarDate是因为Date是为其自己的类保留的。

输出:

修订日期:10/15/2013工作时间:150

修订日期:10/16/2013工作时间:180

编辑:

要获得输出,只需使用:

 For Each obj In query
     Dim datet = obj.VarDate
     Dim WorkH = obj.Worktime
 Next

为了避免在使用linq时声明类型option infer on,请在vb.net文档的第一行中插入以下行:(因此您可以使用dim datet = obj.Vardate)而不声明类型。就像C#中的var

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章