分组取值、求和、计数

  

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

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

  

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

分组去重

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

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

           List<YiChangEMPIModel> ycmxlist = new List<YiChangEMPIModel>();
var yichang = from yc in AnalysisDbContext.EMPI_YC
from ycmx in AnalysisDbContext.EMPI_YCMX
where yc.ID == ycmx.ZHUBIAOID && (state == "*" ? 1==1: yc.SHIFOUXZ==state)
&& (yc.EMPI.Contains(text) || ycmx.SHENFENZH.Contains(text) || ycmx.XINGMING.Contains(text))
orderby yc.UPDATE_TIME descending
select new {
ID=yc.ID,
EMPI=yc.EMPI,
SHIFOUXZ=yc.SHIFOUXZ,
INSERT_TIME=yc.INSERT_TIME,
UPDATE_TIME=yc.UPDATE_TIME
};
foreach (var yc in yichang)
{
ycmxlist.Add(new YiChangEMPIModel
{
ID = yc.ID,
EMPI = yc.EMPI,
SHIFOUXZ = yc.SHIFOUXZ,
INSERT_TIME = yc.INSERT_TIME,
UPDATE_TIME = yc.UPDATE_TIME
});
}

两个 list 关联(inner join)

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

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

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

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

  

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

  

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. LuoguP1858 多人背包(DP)

    第\(K\)优解这类问题可在\(DP\)过程中通过添维解决.归并出当前前\(K\)大的解. #include <iostream> #include <cstdio> #inc ...

  2. Blazor预研与实战

    背景 最近一直在搞一件事,就是熟悉Blazor,后期需要将Blazor真正运用到项目内.前期做了一些调研,包括但不限于 Blazor知识学习 组件库生态预研 与现有SPA框架做比对 与WebForm做 ...

  3. C++11实现的数据库连接池

    它什么是? 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:类似的还有线程池. 为什么要用? 一个数据库连接对象均对应一个物理数据库连接, ...

  4. Tomcat 10无法使用javax包

    可以导入新的 jakarta包 <dependencies><!--servlet依赖--> <dependency> <groupId>jakarta ...

  5. java.lang.UnsatisfiedLinkError报错

    是因为使用maven时,运行web项目时,在maven的依赖包没有打包到tomcat中(out目录中),所以要手动加上

  6. [第二章 web进阶]XSS闯关-1

    定义:跨站脚本(Cross_Site Scripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种.它允许恶意用户将代码注入网页,其他用户浏览网 ...

  7. KingbaseESV8R6如何针对表单独设置vacuum策略

    背景 书接上文 KingbaseES应对表年龄增长过快导致事务回卷 ,有些特殊业务场景不能靠全局的autovacuum方法,例如大型数据库系统,频繁做update的系统,还有上文提到的做实时数据同步的 ...

  8. **手把手教你安装 Anaconda + Tensor flow+Pycharm**

    手把手教你安装 Anaconda + Tensor flow+Pycharm 这篇博文主要讲一下自己安装Anaconda + Tensor flow + Pycharm 的一个过程. 1. ANACO ...

  9. Nginx反代服务器进阶学习最佳配置实践指南

    转载自:https://www.bilibili.com/read/cv16150010?spm_id_from=333.999.0.0 0x00 编译实践 描述:在企业线上生产环境中推荐进行Ngin ...

  10. Kubernetes里的Service是如何工作的

    Service是Kubernetes接入层的一种抽象资源,它为我们提供了一种固定的.统一的访问接口地址和负载均衡能力,这时可能会想到,当时使用docker-compose的时候,不存在Service概 ...