EF+Lamdba的三种去除重复项

Lambda去除重复项方法
本文介绍了三种使用Lambda表达式去除集合中重复项的方法:第一种是通过FindIndex结合ToList实现;第二种利用Select与Distinct组合去除重复;第三种采用GroupBy进行分组并统计重复数据。
 
今天在写项目的时候出现了这个问题,经过百度和帮人帮助最终原来lamdba是这样去除重复项的             var Total1 = db.NikeDTCDailyReport.Where(p => p.CN_Launch_Date >= date1 && p.CN_Launch_Date <= date2).Where(p => p.CN_Planning_Qty != 0).ToList();
            var Total2= Total1.Where((x, i) => Total1.FindIndex(p => p.Style == x.Style) == i).Count(); 
第二种是
             var SDLDelivered1 = db.NikeDTCDailyReport.Where(p => p.CN_Launch_Date >= date1 && p.CN_Launch_Date <= date2
            && p.CN_Planning_Qty != 0 && p.LW_Specs_Review == null && p.Sample_Batch == null && p.Review_Request_to_Category == null && p.Review_back_from_Category == null
).Where(p => p.CN_CN_Copy_Status__Y_N_ == "Y").Select(p=>p.Style).ToList();
            var SDLDelivered2 = SDLDelivered1.Distinct().Count(); 
使用的是大多数人都知道的转成集合试用Distinct来去除去除重复
第三钟
        var CategoryReviewwing1 = db.NikeDTCDailyReport.Where(p => p.CN_Launch_Date >= date1 && p.CN_Launch_Date <= date2)
    .Where(p => p.CN_Planning_Qty != 0 && p.Review_Request_to_Category != null &&
    p.Review_back_from_Category == null
    ).AsEnumerable().ToList();
            //  var CategoryReviewwing2 = CategoryReviewwing1.GroupBy(o => new { o.Style }).ToList().Exists(g => g.Count() > 1);

  var CategoryReviewwing2 = CategoryReviewwing1.GroupBy(o => new { o.Style }).Where(g => g.Count() >= 1).ToList();
  var CategoryReviewwing2 = CategoryReviewwing1.GroupBy(o => new { o.Style }).Where(g => g.Count() >= 1).Count();

其中 注释了的是 查询有多少的重复的数据 而第二个则是转成list集合,第三个则是转换成int类型
 
 

转载于:https://www.cnblogs.com/xiaojian1/p/5462920.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值