我有一个 typedDataset (ds) 和它的 datatable(dt)。数据表具有列Date
(ttmmyyy) 和Worktime
. 我想按月总结工作时间。我已经完成了将工作时间与
Dim sum = dt.AsEnumerable().Sum((Function(x) x.Worktime))
我需要按月分组的帮助。
我使用您的字段创建了一个表,并且以下查询运行良好:
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