VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)

摘要:
PublicClassLinqToList'LINQ在C#中使用比较方便,但是在VB中使用比较麻烦,复杂,和C#用法并不太一样DimlistNewAsList(OfProduct)=NewList(OfProduct)'新商品DimlistOldAsList(OfProduct)=NewList(OfProduct)'旧商品'******给listNew加载数据此处省略******'******给
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泛型查询语句(分组,聚合函数)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ISD9160学习笔记04_ISD9160音频编码代码分析复习 网络通信协议下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jackson 通过自定义注解来控制json key的格式

Jackson 通过自定义注解来控制json key的格式 最近我这边有一个需求就是需要把Bean中的某一些特殊字段的值进行替换。而这个替换过程是需要依赖一个第三方的dubbo服务的。为了使得这个转换功能更加的通用,我们采用了下面的方式: client端使用自定义的注解(假设为@Dimension)标记Bean中所有的「特殊字段」 client端把bea...

C# 6.0新特性

C#6.0新特性  一、C#发展历程 一、C#6.0新特性 转自:https://www.cnblogs.com/yinrq/p/5600530.html 1、字符串插值 (String Interpolation) 字符串拼接优化 Before: var Name = "joye.net"; var Results = "Hello" + Name;/...

干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结

我(梦在旅途,http://zuowj.cnblogs.com; http://www.zuowenjun.cn)最近发表的一篇文章《.NET CORE与Spring Boot编写控制台程序应有的优雅姿势》看到都上48小时阅读排行榜(当然之前发表的文章也有哦!),说明关注.NET CORE及Spring Boot的人很多,也是目前的主流方向,于是我便决定系...

Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数

1.主要布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too...

Spring Security(16)——基于表达式的权限控制

目录 1.1通过表达式控制URL权限 1.2通过表达式控制方法权限 1.2.1使用@PreAuthorize和@PostAuthorize进行访问控制 1.2.2使用@PreFilter和@PostFilter进行过滤 1.3使用hasPermission表达式 Spring Security允许我们在定义URL访问或方法访问所应有的权限时使用Spring...

java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)

最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.currentThread().getContextClassLoader().getResource("/").getPath().replaceAll("WEB-INF...