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泛型查询语句(分组,聚合函数)的更多相关文章

  1. 在Delphi中动态地使用SQL查询语句 Adoquery sql 参数 冒号

    在Delphi中动态地使用SQL查询语句 在一般的数据库管理系统中,通常都需要应用SQL查询语句来提高程序的动态特性.下面介绍如何在Delphi中实现这种功能.在Delphi中,使用SQL查询语句的途 ...

  2. sql中having、group by用法及常用聚合函数

    having是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后就要用到HAVING 的用法了,就是进行判断了. 注意:sele ...

  3. ef实现一次查询多个聚合函数的字段

    想用ef来写一个统计字段的语句,如下所示 select sum(price) as price_total, sum(amount) as amount_total from table1 发现似乎实 ...

  4. PHP中对mysql预编译查询语句的一个封装

    原文地址:http://chen-shan.net/?p=474 为了防止sql注入,我们都使用过mysqli这个类,但是每次都需要绑定参数,绑定结果等,比较麻烦,所以可以把这些重复的语句封装成一个函 ...

  5. Django模型层之字段查询参数及聚合函数

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 字段查询是指如何指定SQL WHERE子句的 ...

  6. python-day71--django多表双下划线查询及分组聚合及F/Q查询

    #====================================双下划线的跨表查询===============# 前提 此时 related_name=bookList 属性查询: # 查 ...

  7. django字段查询参数及聚合函数

    字段查询是指如何指定SQL WHERE子句的内容.它们用作QuerySet的filter(), exclude()和get()方法的关键字参数. 默认查找类型为exact. 下表列出了所有的字段查询参 ...

  8. T-SQL - query03_去重查询|模糊查询|排序|分组|使用函数

    时间:2017-09-29 整理:byzqy 本篇仍以"梁山好汉"数据表为例,介绍几个常用的 T-SQL 查询语句: 去重查询,关键字:distinct 使用通配符模糊查询,关键字 ...

  9. DQL排序查询和DQL聚合函数

    DQL:查询语句 排序查询 语法: order by 字句 order by 排序字段1 排序方式1,排序字段2 排序方式2... 排序方式: ASC:升序,默认的 DESC:降序 SELECT * ...

随机推荐

  1. leetcode 栈 括号匹配

    https://oj.leetcode.com/problems/valid-parentheses/ 遇到左括号入栈,遇到右括号出栈找匹配,为空或不匹配为空, public class Soluti ...

  2. Java获取当前路径

    1.利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user ...

  3. HDU 1231 (13.12.2)

    Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...

  4. mapreduce 读写lzo文件

    1.读lzo文件 需要添加以下代码,并导入lzo相关的jar包  job.setInputFormatClass(LzoTextInputFormat.class); 2.写lzo文件 lzo格式默认 ...

  5. Linux下安装 TestLink常见问题解决方法

    Read/write permissions For security reason we suggest that directories tagged with [S] on following ...

  6. 保证相同类型的MDI子窗体只会被打开一次的方法

    本文转载:http://www.cnblogs.com/Ricky81317/archive/2008/09/17/1292443.html 看到论坛中有朋友问,如何可以保证在MDI主窗体中,同一类型 ...

  7. POJ 1737 统计有n个顶点的连通图有多少个 (带标号)

    设f(n)为所求答案 g(n)为n个顶点的非联通图 则f(n) + g(n) = h(n) = 2^(n * (n - 1) / 2) 其中h(n)是n个顶点的联图的个数 这样计算 先考虑1所在的连通 ...

  8. SQL Server 2008 常见异常收集(持续更新)

    写在前面: 最近,在使用SQL Server 2008时,出现了不少问题.发现,很多问题都是以前碰见过的,并且当时也寻找到了解决方法(绝大部分来源于“百度”与“Google”),只是时间一长,又忘记了 ...

  9. 怎么进行robot检測

    服务端能够通过三种途径进行robot检測: 第一种,利用http的User-Agent header进行推断,这样的是最正常的推断,但这样的不能检測出不友好的请求,它能够伪造. 另外一种,限制请求频率 ...

  10. 基于Flume的美团日志收集系统(一)架构和设计【转】

    美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...