public class HIS_CLIREGISTER : BaseModel
{

private String _FBCODE;
[StringLength(8)]
/// <summary>
/// 费别
/// </summary>
public String FBCODE
{
get { return _FBCODE; }
set
{
if (_FBCODE != value && RowState == RowStateFlags.ROW_Original)
{
RowState = RowStateFlags.ROW_Edited;
}
_FBCODE = value;
}
}

private String _USERNAME;
[StringLength(20)]
/// <summary>
/// 操作人
/// </summary>
public String USERNAME
{
get { return _USERNAME; }
set
{
if (_USERNAME != value && RowState == RowStateFlags.ROW_Original)
{
RowState = RowStateFlags.ROW_Edited;
}
_USERNAME = value;
}
}

private decimal _REGFEE;
/// <summary>
/// 挂号费
/// </summary>
public decimal REGFEE
{
get { return _REGFEE; }
set
{
if (_REGFEE != value && RowState == RowStateFlags.ROW_Original)
{
RowState = RowStateFlags.ROW_Edited;
}
_REGFEE = value;
}
}

public string FBNAME { get; set; }

public decimal perOfTotal { get; set; }

}

List<HIS_CLIREGISTER> CLIREGISTERS = new List<HIS_CLIREGISTER>();

List<HIS_CLIREGISTER> items = reportDomain.GetRecordsCLIREGCost(frmcrt.StartDt.ToString("yyyy-MM-dd"), frmcrt.EndDt.ToString("yyyy-MM-dd"), ref errorMessage);//取得数据集

decimal Total = items.Sum(s => s.REGFEE);

//费别分组
var itemsGB = from a in items.GroupBy(g => g.FBCODE) select new { a.Key, FBNAME = a.Max(m => m.FBNAME) };
foreach (var v in itemsGB)
{
List<HIS_CLIREGISTER> tmpItems = items.Where(w => w.FBCODE == v.Key).ToList();
//操作人分组
List<HIS_CLIREGISTER> itemsGB2 = (from a in tmpItems.GroupBy(g => g.USERNAME)
select new HIS_CLIREGISTER
{
FBCODE = v.Key,
USERNAME = a.Key,
FBNAME = v.FBNAME,
REGFEE = a.Sum(s => s.REGFEE),
perOfTotal = a.Sum(s => s.REGFEE) / Total
}).ToList();
CLIREGISTERS.AddRange(itemsGB2);
}

示例, linq分组的更多相关文章

  1. Linq分组功能

    Linq在集合操作上很方便,很多语法都借鉴自sql,但linq的分组却与sql有一定的区别,故整理发布如下. 1.  Linq分组 分组后以Key属性访问分组键值. 每一组为一个IEnumberAbl ...

  2. Linq分组操作之GroupBy,GroupJoin扩展方法源码分析

    Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var ...

  3. Linq分组,linq方法分组

    Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: 01.public class ...

  4. Linq分组查询统计

    这里介绍Linq使用Group By和Count得到每个CategoryID中产品的数量,Linq使用Group By和Count得到每个CategoryID中断货产品的数量等方面. 学经常会遇到Li ...

  5. C# 泛型分组和Linq分组的异同

    没什么好说的,因为用的到,所以作个记录, 代码如下: using System; using System.Collections.Generic; using System.Linq; using ...

  6. Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 服务分组 当一个接口有多种实现时,可以用group区分. <dubbo:se ...

  7. c# linq 分组groupby

    转载: https://www.cnblogs.com/cncc/p/9846390.html 一.先准备要使用的类: 1.Person类: class Person { public string ...

  8. linq分组求和_实体类和datatable

    1.数据分组求合,分别用的实体类以及datatable来分组求合,还有分组求和之后的如何取值 //实体类版本 List<ProgramTimeModel> TotalAllList = G ...

  9. LINQ分组取出第一条数据

    Person1: Id=, Name="Test1" Person2: Id=, Name="Test1" Person3: Id=, Name="T ...

随机推荐

  1. angular.isDefined()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. __http原理__HTTP 协议简介

    HTTP 协议通信流程 超文本 除了文本以外,还有其他数据类型的内容 HTTP 协议 指计算机网络通信中 两台计算机之间所必须遵守的规定或规则 Hypertext Transport Protocol ...

  3. 简单的SQL查询,循环插入

  4. Python 学习笔记10 函数

    函数其实一段带名字的代码段,我们可以根据代码段,重复执行某一段代码段,或者有条件的执行某一段代码段. 将一段代码定义成函数后,我们可以很方便的根据自己的需求,随时调用该代码段.遇到需求变化的时候,只需 ...

  5. centos7 openfiles问题

    集群环境有几台新增的机器,尝试修改open files的时候,按照平常的操作就是修改/etc/security/limits.conf和/etc/security/limits.d/90-nproc. ...

  6. [daily] emacs显示file name buffer的全路径

    在用emacs看代码的时候,在文件间跳来跳去,如果工程太大的话,很可能会有重名文件,这个时候, 你就不知道自己在什么的地方了.需要一个查看当前正在编辑区的文件的名字的方法. emacs在这个地方,存储 ...

  7. Eclipse中STM32工程建立步骤

    前段时间一直在折腾linux系统上STM32的开发,网上一顿搜,费劲九牛二虎之力终于把环境搭好了(现在都有点忘了,后面再折腾环境搭建一定要写个教程,今天先不写了). 自从环境搭好之后,就基本抛弃MDK ...

  8. 微信小程序字符串替换

    字符串替换有两种,一种是替换一个子字符串,一种是将子字符串全部替换 替换一个子字符串 要求:将“ ”(空格)替换成“,” var isguestnumbername=“aaa bbb ccc” isg ...

  9. Centos7.3安装和配置Tomcat8

    1.下载tomcat8压缩包 下载地址:https://pan.baidu.com/s/1ONIq3S5YjbCsET1rA13lGA 2.通过xftp工具将压缩包上传到usr/java下,然后使用下 ...

  10. check failed status == cudnn_status_success (4 vs. 0) cudnn_status_internal_error

    Check failed: error == cudaSuccess (30 vs. 0) unknown error  这个有可能是显存不足造成的,或者网络参数不对造成的 check failed ...