分组取值、求和、计数

  

 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. .NET异步编程模式(一)

    .NET 提供了三种异步编程模型 TAP - task-based asynchronous pattern APM - asynchronous programming model EAP - ev ...

  2. [题解]Balance

    1.题目 POJ-1837 2.题目大意 一个天平上有一些钩子,现在有一些砝码.给出每个钩子到原点(姑且这么叫吧)的距离(-15 ~ 15,负数代表在左边,正数相反)以及砝码的重量(1 ~ 20),求 ...

  3. C++ 虚拟桌面

    C++ 打开一个虚拟桌面的代码 看不明白的地方 请查看demo: http://download.csdn.net/detail/allh45601/7224205 QQ群:103197177 C++ ...

  4. 054_末晨曦Vue技术_处理边界情况之组件之间的循环引用

    组件之间的循环引用 点击打开视频讲解更详细 假设你需要构建一个文件目录树,像访达或资源管理器那样的.你可能有一个 <tree-folder> 组件,模板是这样的: <p> &l ...

  5. LOJ6671 EntropyIncreaser 与 Minecraft (生成函数)

    题面 EntropyIncreaser 是组合计数大师. EntropyIncreaser 很喜欢玩麦块.当然,EntropyIncreaser 拥有非同常人的超能力,他玩的是MOD版的 n 维麦块, ...

  6. 必应每日壁纸API

    必应官网每天会更新不同的高质量背景图 我们可以通过 F12 开发者工具手动下载当天的壁纸,网上也有很多网站提供必应壁纸下载.如果我们想每天应用最新的壁纸到我们的网站上就需要手动下载再设置壁纸,比较麻烦 ...

  7. SQL order by 语句对null值排序

    记order by 语句对null值排序: 目录 记order by 语句对null值排序: MySQL: Oracle: SqlServer: MySQL: 将null值放在最后 select * ...

  8. AtCoder Beginner Contest 265(D-E)

    D - Iroha and Haiku (New ABC Edition) 题意: 找一个最少含有三个点的区间,将区间分成三块,三块的和分别为p,q,r,问是否存在这样的区间 题解:先预处理一遍前缀和 ...

  9. KingbaseES 多列分区的方法与性能

    前言 对于多列分区,可以选择单级多列的范围分区,也可以选择范围加子分区的方式.但二者在不同场景下对于性能是有差异的,这里的性能差异主要是分区裁剪引起的差异. 例子 创建两张分区表,采取不同的分区策略: ...

  10. KingbaseES V8R6C5B041手工创建集群测试案例

    ​ 案例说明: KingbaseES V8R6C5B041版本和以前的KingbaseES R6有一定的区别,增加了"securecmdd"的工具,并且在install.conf配 ...