linq IEnumerable dynamic Where Select Join


var credits = Biz.GetClaimCredit();// IEnumerable<dynamic>
var errorImeis = RequestPara.IMEIs.Where(m => (m.IsCurrORG == 0 && credits.Any(c => c.BlankType == 0 && c.OrgUserId == m.OrgId)) || (m.IsCurrUser == 0 && credits.Any(c => c.BlankType == 1 && c.OrgUserId == RequestPara.UserId)));
if (errorImeis != null && errorImeis.Count() > 0) return FailPara(string.Join(",", errorImeis.Select(d => d.IMEI)) + " 不可认领!");

 

//判断集合不匹配的数据

  var errImei = para.DetailList.Where(i => !gps.Any(g => g.IMEI == i.IMEI));

 

 

 

//分组取最大的一条数据集合
var detail = await _taskDetailDal.Query(i => arr.Contains(i.taskid) && c.Contains(i.shop_code) && i.status == 1);
detail = detail.GroupBy(i => i.shop_code).Select(j => j.OrderByDescending(k => k.taskid).FirstOrDefault()).ToList();

 


long[] arr = tasks.Select(o => o.id).ToArray();
var detail = await _taskDetailDal.Query(i => arr.Contains(i.taskid) && i.status == 1);
tasks.ForEach(i => { i.Details = detail.Where(j => j.taskid == i.id).ToList(); });

 


var modelTask = models.Select(i => new TaskHeaderDao { id = i.taskid, driverid = i.driverid, deliver_date = i.deliver_date, redundant = i.redundant.Replace("-", ","), taskname = i.taskname, create_user = userId, update_user = userId }).Distinct().ToList();

 

//集合拼接
newDetail = newDetail.Union(i.Details).ToList();

posted @   yufeiyunsui  阅读(436)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示