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

时间:2013-10-16 12:08:12

标签: vb.net linq

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

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

我需要按月帮助分组。

1 个答案:

答案 0 :(得分:7)

我创建了一个包含字段的表格,以下查询效果很好:

 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:10/16/2013工作时间:180

编辑:

要获得输出,请使用:

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

要避免在使用linq时声明类型,请在vb.net文档的第一行插入行option infer on(这样您就可以使用dim datet = obj.Vardate)而不声明类型。它就像c#中的var