分组取值、求和、计数

  

  1. 1 var resultlist = orderllist.GroupBy(oo => new { oo.Deptname, oo.Userid, oo.Username })
  2. 2 .Select(ss => new OBreakfirstModel
  3. 3 {
  4. 4 Number = number++,
  5. 5 Deptname = ss.Key.Deptname,
  6. 6 Userid = ss.Key.Userid,
  7. 7 Username = ss.Key.Username,
  8. 8 Ototalamount = ss.Sum(s => s.Ototalamount),
  9. 9 Ocount = ss.Sum(s => s.Ocount)
  10. 10 });

主从表关联,对应多条明细数据

  

  1. 1 var danzilist = DBconn.Query<ZuZModel>(sql_list, dynamicParameters).ToList();
  2. 2 var zijianlist= DBconn.Query<ZiMX>(sql_jian).ToList();
  3. 3 var resultlist = (from danzi in danzilist
  4. 4 select new ZuZhuangCXModel()
  5. 5 {
  6. 6 fid = danzi.fid,
  7. 7 rukurq=danzi.rukurq,
  8. 8 shiwulx=danzi.shiwulx,
  9. 9 wuliaobm=danzi.wuliaobm,
  10. 10 wuliaomc=danzi.wuliaomc,
  11. 11 wuliaolbdm=danzi.wuliaolbdm,
  12. 12 wuliaolbmc=danzi.wuliaolbmc,
  13. 13 shuliang=danzi.shuliang,
  14. 14 cangkuid=danzi.cangkuid,
  15. 15 cangkumc=danzi.cangkumc,
  16. 16 zijianmxs = (from zijian in zijianlist
  17. 17 where zijian.fid == danzi.fid
  18. 18 select new ZiJianMX()
  19. 19 {
  20. 20 fid = zijian.fid,
  21. 21 fdetailid = zijian.fdetailid,
  22. 22 wuliaobm = zijian.wuliaobm,
  23. 23 wuliaomc = zijian.wuliaomc,
  24. 24 cangkuid = zijian.cangkuid,
  25. 25 cangkumc = zijian.cangkumc,
  26. 26 shuliang = zijian.shuliang
  27. 27 }).ToList()
  28. 28 }).ToList();

分组去重

  1. var newycmxlist = ycmxlist.GroupBy(g => new { g.EMPI, g.SHIFOUXZ })
  2. .Select(item => item.First()).ToList();

两表关联、排序、对象赋值、分组去重

  1. List<YiChangEMPIModel> ycmxlist = new List<YiChangEMPIModel>();
  2. var yichang = from yc in AnalysisDbContext.EMPI_YC
  3. from ycmx in AnalysisDbContext.EMPI_YCMX
  4. where yc.ID == ycmx.ZHUBIAOID && (state == "*" ? 1==1: yc.SHIFOUXZ==state)
  5. && (yc.EMPI.Contains(text) || ycmx.SHENFENZH.Contains(text) || ycmx.XINGMING.Contains(text))
  6. orderby yc.UPDATE_TIME descending
  7. select new {
  8. ID=yc.ID,
  9. EMPI=yc.EMPI,
  10. SHIFOUXZ=yc.SHIFOUXZ,
  11. INSERT_TIME=yc.INSERT_TIME,
  12. UPDATE_TIME=yc.UPDATE_TIME
  13. };
  14. foreach (var yc in yichang)
  15. {
  16. ycmxlist.Add(new YiChangEMPIModel
  17. {
  18. ID = yc.ID,
  19. EMPI = yc.EMPI,
  20. SHIFOUXZ = yc.SHIFOUXZ,
  21. INSERT_TIME = yc.INSERT_TIME,
  22. UPDATE_TIME = yc.UPDATE_TIME
  23. });
  24. }

两个 list 关联(inner join)

  1. //部门信息 关联 日志表 取出上次处理时间
  2. //deptresult:包含各级部门和上传时间
  3. var deptresult = (from t1 in dapartments
  4. join t2 in logs on t1.DeptID equals t2.DeptID
                 select new DepartmentInfoModel
  5. {
  6. CurntDeptID = t1.CurntDeptID,
  7. CurntDeptName = t1.CurntDeptName,
  8. DeptID = t1.DeptID,
  9. DeptName = t1.DeptName,
  10. LeaderID = t1.LeaderID,
  11. LeaderName = t1.LeaderName,
  12. Starttime = t2.Starttime,
  13. Endtime = t2.Endtime
  14. }).ToList();

两个 list 关联(left join)(list2 为空添加默认值)

  1. //部门信息 关联 日志表 取出上次处理时间
  2. //deptresult:包含各级部门和上传时间
  3. var deptresult = (from t1 in dapartments
  4. join t2 in logs on t1.DeptID equals t2.DeptID into temp
  5. from tempresule in temp.DefaultIfEmpty(
  6. new SendLogModel { Starttime = Convert.ToDateTime("2020-12-22"), Endtime = Convert.ToDateTime("2020-12-22") })
  7. select new DepartmentInfoModel
  8. {
  9. CurntDeptID = t1.CurntDeptID,
  10. CurntDeptName = t1.CurntDeptName,
  11. DeptID = t1.DeptID,
  12. DeptName = t1.DeptName,
  13. LeaderID = t1.LeaderID,
  14. LeaderName = t1.LeaderName,
  15. Starttime = tempresule.Starttime,
  16. Endtime = tempresule.Endtime
  17. }).ToList();

list.Remove 单个实例 / 多个实例

  

  1. List<TemplistExpenseModel> currentlist = templistExpenseModels;
  2. if (userid != "" && userid != null)
  3. {
  4. currentlist.Where(ee => ee.Userid == userid).ToList().ForEach(cc => { templistExpenseModels.Remove(cc); });
  5. return Json(new { code = 200, msg = "清除推送列表成功!" });
  6. }

  

C# Linq 查询汇总的更多相关文章

  1. C#基础:LINQ 查询函数整理

    1.LINQ 函数   1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作 ...

  2. atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php

    atitit.  集合groupby 的实现(2)---自定义linq查询--java .net php 实现方式有如下 1. Linq的实现原理流程(ati总结) 1 2. groupby  与 事 ...

  3. atitit. 集合groupby 的实现(2)---自己定义linq查询--java .net php

    atitit.  集合groupby 的实现(2)---自己定义linq查询--java .net php 实现方式有例如以下 1. Linq的实现原理流程(ati总结) 1 2. groupby   ...

  4. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

  5. LinqToDB 源码分析——轻谈Linq查询

    LinqToDB框架最大的优势应该是实现了对Linq的支持.如果少了这一个功能相信他在使用上的快感会少了一个层次.本来笔者想要直接讲解LinqToDB框架是如何实现对Linq的支持.写到一半的时候却发 ...

  6. Linq查询基本操作

    摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 ...

  7. 《Entity Framework 6 Recipes》中文翻译系列 (26) ------ 第五章 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-7  在别的LINQ查询操作中使用Include()方法 问题 你有一个LINQ ...

  8. Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)

    为了提高开发者的易用性,Rafy 领域实体框架在很早开始就已经支持使用 Linq 语法来查询实体了.但是只支持了一些简单的.常用的条件查询,支持的力度很有限.特别是遇到对聚合对象的查询时,就不能再使用 ...

  9. c# Linq查询

    c#提供的ling查询极大的遍历了集合的查询过程,且使用简单方便,非常的有用. 下面将分别用简单的例子说明:ling基本查询.延迟查询属性.类型筛选.复合from字句.多级排序.分组查询.联合查询.合 ...

随机推荐

  1. what the difference betweent pin page and lock page ?

    以前在项目中,大家为了避免自己使用的page被换出,使用的方式是mlock,从mlock的实现的看,它限制了page被swap, 然后在一个swap off的系统中,这样其实和mlock调用与否没有关 ...

  2. “判断性别”Demo需求分析和初步设计(中)

    大家好~我开设了"深度学习基础班"的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序 线上课程资料: 本节课录像回放 加QQ群,获得 ...

  3. MySQL源码分析之SQL函数执行

    1.MySQL中执行一条SQL的总体流程 2.SQL函数执行过程 1.MySQL中执行一条SQL的总体流程 一条包含函数的SQL语句,在mysql中会经过: 客户端发送,服务器连接,语法解析,语句执行 ...

  4. 截取url后缀扩展名方法

    原本使用 Path(_['video']['downloadUrl']).suffix 获取文件扩展名,没想到出错了,查明原因发现某视频链接是https://xx.xxx.xxx/xx/xxxx.mp ...

  5. 数据卷之Docker File

    DockerFile 是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本.后面再详细了解 DockerFile ! 1.我们在宿主机 /home 目录下新建一个 docker-tes ...

  6. KingbaseES R6 集群启动‘incorrect command permissions for the virtual ip’故障案例

    案例说明: KingbaseES R6集群启动时,出现"incorrect command permissions for the virtual ip"故障,本案例介绍了如何分析 ...

  7. KingbaseES 自增列三种方式

    KingbaseES中3种自增长类型sequence,serial,identity的区别: 对象 显示插入 显示插入后更新最大值 清空表后是否重置 是否跟事务一起回滚 多对象共享 支持重置 出现错误 ...

  8. C++ 左值引用与 const 关键字

    左值引用是已定义的变量的别名,其主要用途是用作函数的形参,通过将左值引用变量用作参数,函数将使用原始数据,而不是副本.引用变量必须在声明时同时初始化,可将 const 关键字用于左值引用,如下所示: ...

  9. CentOS无法识别NTFS格式U盘完美解决方案

    问题描述:CentOS上无法识别NTFS格式的U盘 解决方案: # 进入yum目录 cd /etc/yum.repos.d # 下载阿里的epel wget http://mirrors.aliyun ...

  10. 2.Prometheus邮件报警配置

    1.安装配置 Alertmanager wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertm ...