今天在寫項目的時候出現了這個問題,經過百度和幫人幫助最終原來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();
&& 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);
.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類型
