Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net LINQ Group By和聚合字段_.net_Vb.net_Linq_Linq To Sql_Group By - Fatal编程技术网

.net LINQ Group By和聚合字段

.net LINQ Group By和聚合字段,.net,vb.net,linq,linq-to-sql,group-by,.net,Vb.net,Linq,Linq To Sql,Group By,在LINQ中,我一直在努力分组,我想根据datetime字段的日期部分进行分组,并聚合其他字段 表格布局示例 myDateField myIntField1 myIntField2 myIntField3 01/02/2013 5 5 5 01/02/2013 5 5 5 02/02/2013 10 10

在LINQ中,我一直在努力分组,我想根据datetime字段的日期部分进行分组,并聚合其他字段

表格布局示例

myDateField     myIntField1    myIntField2    myIntField3
01/02/2013      5              5              5
01/02/2013      5              5              5
02/02/2013      10             10             10
02/02/2013      10             10             10
我想寄一份清单和

myDateField     myIntField1    myIntField2    myIntField3
01/02/2013      10             10             10
02/02/2013      20             20             20
我已经使用msdn示例管理了以下内容,但我真的不知道如何使用它。它说明我应该能够访问新的
BookedList
组,但不断出现注释性类型错误等

        Dim bestdays = From a In b
                        Where a.BookedOn < a.EventDayTime And a.Cancelled = False
                        Group By BookDate = a.BookedOn.Value.Date
                        Into BookedList = Group
Dim bestdays=从a到b
其中a.BookedOn
也许这个sld可以胜任你的工作

Dim bestdays = (From a In b
               Where a.BookedOn < a.EventDayTime And a.Cancelled = False
               Group By BookDate = a.BookedOn.Value.Date
               Into BookedList = Group).Take(5)
Dim bestdays=(从b中的a开始)
其中a.BookedOn
语法是
到[FIELD\u NAME1]=[AGGREGATE\u FUNCTION1]([VALUE1]),[FIELD\u NAME2]=[AGGREGATE\u FUNCTION2]([VALUE2])…
。密钥将自动成为返回对象的一部分

所以你在寻找这样的东西:

Class TableRow
  Public Property myDateField As Date
  Public Property myIntField1 As Integer
  Public Property myIntField2 As Integer
  Public Property myIntField3 As Integer
  Sub New(mydate As Date,
          myint1 As Integer, myint2 As Integer, myint3 As Integer)
    myDateField = mydate
    myIntField1 = myint1
    myIntField2 = myint2
    myIntField3 = myint3
  End Sub
End Class

Sub Main()
  Dim tablesRows As New List(Of TableRow)
  tablesRows.Add(New TableRow(Today, 5, 10, 15))
  tablesRows.Add(New TableRow(Today, 6, 11, 16))

  Dim v = From r In tablesRows Group By r.myDateField
          Into Total1 = Sum(r.myIntField1),
               Total2 = Sum(r.myIntField2),
               Total3 = Sum(r.myIntField3)
End Sub

为您执行此操作(其中n是从序列开始的连续元素数)。或者你的问题是关于你得到的错误?抱歉@DaveRook标题可能有误导性,我知道如何获得5条记录,但我上面的代码似乎没有分组。它也不会聚合myIntFields。我知道如何在SQL中做到这一点-对所有myInt字段求和,然后按日期字段分组,我如何用LINQ-SQL实现这一点?感谢Manolis,请参阅上面的评论,更改标题,因为我意识到这可能会误导,我知道如何获取5条记录,但我的分组依据不起作用。尝试以下操作:分组依据a.BookedOnPerfect!不仅是一个答案,我想你也帮我弄清楚了这是怎么回事。非常感谢!