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);

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

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...