C# 两个linq查询语句结果集合并

C# 两个linq查询语句结果集合并

List<IntellManuSchool_TaskUserStatisticsV> onetasklstpro = new List<IntellManuSchool_TaskUserStatisticsV>();
foreach (var dpinfo in departmentlist)
{
    List<IntellManuSchool_TaskUserStatisticsV> ondepttask = tasklists.Where(t => t.DepartmentId == dpinfo.Id).OrderByDescending(t => t.BeginTime).ToList();
    if (ondepttask.Count > 0)
    {
        int deptrowspan = ondepttask.Count;
        var taskg = from t in ondepttask
                    select t.TaskId;
        List<int> taskidgroup = taskg.Distinct().ToList();
        foreach (int tid in taskidgroup)
        {
            List<IntellManuSchool_TaskUserStatisticsV> onetasklst = ondepttask.Where(t => t.TaskId == tid).OrderByDescending(t => t.BeginTime).ToList();
            foreach (var ut in onetasklst) {
                int sc = videorecordlist.Count(x => x.TaskId == ut.TaskId && x.UserId == ut.UserId && x.Finish == 1);
                ut.StudySectionCount = sc;
                //list.Add(new entity{id=1,name="小强"})此类语句小编也经常用到索性也记录此次之内好了
                onetasklstpro.Add(new IntellManuSchool_TaskUserStatisticsV { TaskName = ut.TaskName, DepartmentName=ut.DepartmentName,TaskStatus=ut.TaskStatus,BeginTime=ut.BeginTime,EndTime=ut.EndTime,SectionCount=ut.SectionCount,TaskId=ut.TaskId,UserId=ut.UserId,StudySectionCount= ut.StudySectionCount, DepartmentId=ut.DepartmentId });
            }
        }
    }
}
//两个linq要求不同的条件搜索所以要进行拆分,再合并
var view =
        from p in onetasklstpro
        where p.DepartmentId!=0//先对已经分配部门的结果进行排序
        orderby (p.DepartmentId)
        group p by new
        {
            p.TaskName,
            p.TaskId,
            p.DepartmentName,
            p.BeginTime,
            p.EndTime,
            p.TaskStatus,
            p.DepartmentId
        }
        into g
        select new
        {
            g.Key,
            jindu = StringFormat.ExecPercent((decimal)g.Sum(p => p.StudySectionCount), (decimal)g.Sum(p => p.SectionCount))
        };
var view2 =
        from p in onetasklstpro
        where p.DepartmentId == 0//最后将没有分配部门的数据补在最后
        orderby (p.DepartmentId)
        group p by new
        {
            p.TaskName,
            p.TaskId,
            p.DepartmentName,
            p.BeginTime,
            p.EndTime,
            p.TaskStatus,
            p.DepartmentId
        }
        into g
        select new
        {
            g.Key,
            jindu = StringFormat.ExecPercent((decimal)g.Sum(p => p.StudySectionCount), (decimal)g.Sum(p => p.SectionCount))
        };
var view3 = view.Union(view2);//Union将两个查询结果集合并
results = JsonHelper.ToJson(view3, "yyyy-MM-dd");
context.Response.Write(results);

最近想要写一篇关于自己近三年工作中的感想文章,目前正在思索,有没有点小期待呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值