从List分组后重新组织数据

///从List分组后从重组织数据

var res = result.GroupBy(s => new
{
    s.LegalUnitID,
    s.TYPE_CD,
    s.TYPE_NAME,
    s.TYPE_NAME_EN,
    s.BILLTYPE,
    s.BasicColor
    }).ToList();

foreach (var rest in res)
{
    var tmpss = new ResBusinessType();
    tmpss.LegalUnitID = rest.Key.LegalUnitID;
    tmpss.TYPE_CD = rest.Key.TYPE_CD;
    tmpss.TYPE_NAME = rest.Key.TYPE_NAME;
    tmpss.TYPE_NAME_EN = rest.Key.TYPE_NAME_EN;
    tmpss.BILLTYPE = rest.Key.BILLTYPE;
    tmpss.BasicColor = rest.Key.BasicColor;
    tmpss.OrgGUID = string.Join(",", rest.Select(c => c.OrgGUID));
    resultValue.Add(tmpss);
}

var result = new List<TravelStandardList>();
if (ret != null)
{
    if (ret.travelStandards.Count > 0)
    {
    var GroupModel = ret.travelStandards.GroupBy(s => new { s.PostLevel }).ToList();

        foreach (var item in GroupModel)
        {
            var resultValue = new TravelStandardList();
            resultValue.travelStandards = new List<TravelStandardModel>();
            var TravelStandard = new TravelStandardModel();
            resultValue.PostLevel = item.Key.PostLevel;
            TravelStandard.PostLevel = item.Key.PostLevel;
            TravelStandard.HotelExpenseStandard = item.Where(s => s.HotelExpenseStandard != null).Select(s => s.HotelExpenseStandard).FirstOrDefault();
            TravelStandard.TrafficExpenseStandard = item.Where(s => s.TrafficExpenseStandard != null).Select(s => s.TrafficExpenseStandard).FirstOrDefault();
            TravelStandard.IsOverSeas = item.Select(s => s.IsOverSeas).FirstOrDefault();
            resultValue.travelStandards.Add(TravelStandard);
            result.Add(resultValue);
        }

    }

}

var EmployeeGroup =  trips.GroupBy(s => s.EmployeeID).ToList();
                foreach (IGrouping<string, TripEmployeeModel> item in EmployeeGroup)
                {
                    foreach (var items  in item)
                    {

                    }

                }

var EmployeeGroup =  trips.GroupBy(s => s.EmployeeID).Where(s=>s.Count()>1).ToList();//获取重复项

原文地址:https://www.cnblogs.com/imtudou/p/11251636.html

时间: 2024-11-08 12:04:17

从List分组后重新组织数据的相关文章

MySQL 对分组后的同类数据进行拼接字符串

MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 group_concat对组内的每一行数据拼接,内部可以排序.使用separator 进行分割 concat_ws对一行内的各个字段进行拼接,第一项指定分隔符,后续的有null会忽略 select oid, group_concat(concat_ws('|',atime,(select `level` from prizes

MySQL 分组后取每组前N条数据

与oracle的 rownumber() over(partition by xxx  order by xxx )语句类似,即:对表分组后排序 创建测试emp表 DROP TABLE IF EXISTS emp; CREATE TABLE emp ( empno decimal(4,0) NOT NULL, ename varchar(10) DEFAULT NULL, job varchar(9) DEFAULT NULL, mgr decimal(4,0) DEFAULT NULL, hi

SQL数据分组后取最大值或者取前几个值(按照某一列排序)

今日做项目的时候,项目中遇到需要将数据分组后,分组中的最大值,想了想,不知道怎么做,于是网上查了查,终于找到了思路,经过比较这个查询时目前用时最快的,其实还有别的方法,但是我觉得我们只掌握最快的方法就行 ,好了,不说废话了! 直接上内容吧:以下数据是通过 SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo='zq00000034' group

SQL数据分组后取最大值或者取前几个值(依照某一列排序)

今日做项目的时候,项目中遇到须要将数据分组后,分组中的最大值,想了想,不知道怎么做.于是网上查了查,最终找到了思路,经过比較这个查询时眼下用时最快的,事实上还有别的方法,可是我认为我们仅仅掌握最快的方法即可 .好了,不说废话了! 直接上内容吧:下面数据是通过 SELECT [CustomerCaseNo],[PaymentsTime] FROM [BOMSDatabase].[dbo].[BAL_paymentsSwiftInfo] where StoresNo='zq00000034' gro

Oracle分组后取某列最大值的行数据

select * from ( select last_comment, row_number() over(partition by employeeid,roadline,stationname order by logindate desc) rn from reocrd ) t where t.rn <=1 这段的意思是,将reocrd表根据员工工号( employeeid),线路(,roadline),站点名称(stationname)分组后,取登录日期(logindate) 最大的那

SQL Server 分组后取Top N

SQL Server 分组后取Top N(转) 近日,工作中突遇一需求:将一数据表分组,而后取出每组内按一定规则排列的前N条数据.乍想来,这本是寻常查询,无甚难处.可提笔写来,终究是困住了笔者好一会儿.冥思苦想,遍查网络,不曾想这竟然是SQL界的一个经典话题.今日将我得来的若干方法列出,抛砖引玉,以期与众位探讨. 正文之前,对示例表结构加以说明. 表SectionTransactionLog,用来记录各部门各项活动的日志表 SectionId,部门Id SectionTransactionTyp

Dynamic CRM 2015学习笔记(4)修改开发人员资源(发现服务、组织服务和组织数据服务)url地址及组织名

在azure vm上安装了CRM 2015后 Dynamic CRM 2015学习笔记(1)Azure 上安装 CRM 2015, 发现了一个问题,那就是在设置 ->自定义项 –> 开发人员资源 里面的几个ulr(发现服务.组织服务和组织数据服务)都不对,显示的都是http://机器名/XRMServices/2011/ -, 但这个url是访问不了的,正确的url应该是 http://xxx.cloudapp.net/XRMServices/2011/ - 下面介绍如何修改成正确的url.

MSSQL&mdash;按照某一列分组后取前N条记录

以前在开发的时候遇到过一个需求,就是要按照某一列进行分组后取前几条数据,今天又有同事碰到了,帮解决了之后顺便写一篇博客记录一下. 首先先建一个基础数据表,代码如下: IF OBJECT_ID(N'Test') IS NOT NULL    BEGIN        DROP TABLE Test    END CREATE TABLE Test(ID bigint IDENTITY(1,1),Name nvarchar(50),Department nvarchar(50)) INSERT IN

MySQL获取分组后的TOP 1和TOP N记录

有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,在一些别的数据库可能有窗口函数可以方面的查出来,但是MySQL没有这些函数,没有直接的方法可以查出来,可通过以下的方法来查询. 准备工作 测试表结构如下: root:test> show create table test1\G *************************** 1. row *************************** Table: test1 Create Table: