Public Class LinqToList 'LINQ在C#中使用比较方便,但是在VB中使用比较麻烦,复杂,和C#用法并不太一样 Dim listNew As List(Of Product) = New List(Of Product) '新商品 Dim listOld As List(Of Product) = New List(Of Product) '旧商品 '****** 给 listNew 加载数据 此处省略****** '****** 给 listOld 加载数据 此处省略****** '查询 listNew 中的最高价 price1,并按 price,name,unit,model,node分组 Dim temp = From Item In listNew Group Item By Key = New With {Key Item.Name, Key Item.Unit, Key Item.Model} Into g = Group Select New With {.price1 = (Aggregate p In g Into Average(p.Price)), .price = (From p In g Select p.Price), .name = Key.Name, .unit = Key.Unit, .model = Key.Model, .note = (From p In g Select p.Note)} 'note并未在分组中,无法再key中获取 '合并listNew 和listOld ,并按 price,name,unit,model,node分组,求出合并后的最高价price1,相同产品的个数.count Dim tempMax = From Item In ((From Contact In listNew).Union(From Shipment In listOld)) Group Item By Key = New With {Key Item.Name, Key Item.Unit, Key Item.Model} Into g = Group Select New With {.price1 = (Aggregate p In g Into Max(p.Price)), .price = (From p In g Select p.Price), .name = Key.Name, .unit = Key.Unit, .model = Key.Model, .note = (From p In g Select p.Note), .count = g.Count()} '最低价 .price1 = (Aggregate p In g Into Max(p.Price)) 改成 .price1 = (Aggregate p In g Into Min(p.Price)) '平均价 .price1 = (Aggregate p In g Into Max(p.Price)) 改成 .price1 = (Aggregate p In g Into Average(p.Price)) End Class Public Class Product Private mPrice As Double '价格 Private mName As String '名称 Private mUnit As String '单位 Private mModel As String '规格 Private mNote As String '备注 Public Property Price() As Double '价格 Get Return mPrice End Get Set(ByVal value As Double) mPrice = value End Set End Property Public Property Name() As String '名称 Get Return mName End Get Set(ByVal value As String) mName = value End Set End Property Public Property Unit() As String '单位 Get Return mUnit End Get Set(ByVal value As String) mUnit = value End Set End Property Public Property Model() As String '规格 Get Return mModel End Get Set(ByVal value As String) mModel = value End Set End Property Public Property Note() As String '备注 Get Return mNote End Get Set(ByVal value As String) mNote = value End Set End Property End Class
VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)
免责声明:文章转载自《VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇ISD9160学习笔记04_ISD9160音频编码代码分析复习 网络通信协议下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=