Vb.net Linq-按多列分组不工作,lambda语法
我试图按日期和时间将7个对象(ABPM类型)分组,但没有得到正确的结果Vb.net Linq-按多列分组不工作,lambda语法,vb.net,linq,Vb.net,Linq,我试图按日期和时间将7个对象(ABPM类型)分组,但没有得到正确的结果 Private Class ABPM Public DT As Date = Date.Now Public Hour As Integer = 0 Public Minute As Integer = 0 Public SBP As Integer = 0 Public DBP As Integer = 0 End Class Dim abpms As New List(Of AB
Private Class ABPM
Public DT As Date = Date.Now
Public Hour As Integer = 0
Public Minute As Integer = 0
Public SBP As Integer = 0
Public DBP As Integer = 0
End Class
Dim abpms As New List(Of ABPM)
以下查询生成7个组,而不是2个组
Dim hourlyDayGroup2 = abpms.GroupBy(Function(a As ABPM) New With {a.DT, a.Hour})
但是这个(没有lambda)只输出2组,这是正确的
Dim hourlyDayGroup = From a As ABPM In abpms _
Group By a.DT, a.Hour Into Group
编写lambda查询的正确方法是什么?谢谢您需要让匿名类型使用
键
属性,以便它们参与相等计算:
Dim hourlyDayGroup2 = abpms.GroupBy(Function(a As ABPM) New With {Key a.DT, Key a.Hour})
发件人:
键属性与非键属性在几个基本方面有所不同:
- 仅比较键属性的值,以确定两个实例是否相等
- 键属性的值是只读的,不能更改
- 对于匿名类型,编译器生成的哈希代码算法中只包含键属性值