var todayFinish = ds.Tables[0].AsEnumerable(); var listTodayFinish = todayFinish .Select(p => new TodayFinishRate { RequireDate = p.Field<DateTime>("RequireDate").ToString("HH:mm"), PickStatus = p.Field<int?>("PickStatus").ToString() }).ToList(); //按需求时间 汇总 出已经完成出货的记录。 var GroupTodayFinish = from a in listTodayFinish where a.PickStatus == "1" group a by new { a.RequireDate } into g select new TodayFinishRate { RequireDate = g.Key.RequireDate, FinishCount = g.Count() }; //按需求时间 汇总 出已经今天全部叫料记录。 var GroupTodayFinishAll = from a in listTodayFinish group a by new { a.RequireDate } into g select new TodayFinishRate { RequireDate = g.Key.RequireDate, AllCount = g.Count() }; var listResult = from all in GroupTodayFinishAll join a in GroupTodayFinish on all.RequireDate equals a.RequireDate into LeftTmp from tmp in LeftTmp.DefaultIfEmpty() select new TodayFinishRate { RequireDate = all.RequireDate, FinishCount = tmp==null?0:tmp.FinishCount, //这个判断很重要,不然报错,因为tmp可能为null AllCount = all.AllCount };
标签:tmp,c#,RequireDate,linq,into,var,new,TodayFinishRate,连接 From: https://www.cnblogs.com/xbding/p/16630837.html