2

我有一个 typedDataset (ds) 和它的 datatable(dt)。数据表具有列Date(ttmmyyy) 和Worktime. 我想按月总结工作时间。我已经完成了将工作时间与

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

我需要按月分组的帮助。

4

1 回答 1

9

我使用您的字段创建了一个表,并且以下查询运行良好:

 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 是为它自己的类保留的。

输出:

Vardate:10/15/2013 工作时间:150

Vardate:2013 年 10 月 16 日工作时间: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

于 2013-10-16T12:16:28.740 回答