Linq語句in與not in的使用
阿新 • • 發佈:2020-06-28
1.IN的使用;
(1)當多項查詢的是Guid型別時;
#region 將string陣列轉化Guid陣列 string[] ProjIdList = ProjIdset.Trim().Split(','); Guid[] guid_ProjId = new Guid[ProjIdList.Length]; for (int i = 0; i < ProjIdList.Length; i++) { guid_ProjId[i]= new Guid(ProjIdList[i]); } #endregion list_data = list_data.Where(p => (guid_ProjId.Contains(p.WareID))).ToList();
(2)當多項查詢的是int型別時;
#region 將string型別轉化為int型別的隱式陣列 string[] ProjTmId_set = ProjTmIdmodel.Trim().Split(','); int?[] ProjTmId_set_num_at = newint?[ProjTmId_set.Length]; #endregion DetailList = DetailList.Where(p => (ProjTmId_set_num_at).Contains(p.ProjTmId)).ToList();
(3)當多項查詢的是string型別時;
#region string陣列 string[] ProjIdList = ProjIdset.Trim().Split(','); #endregion list_data = list_data.Where(p => (ProjIdList.Contains(p.WareName))).ToList();
2.Not IN的使用;
(1)當多項查詢的是Guid型別時;
#region 將string陣列轉化Guid陣列 string[] ProjIdList = ProjIdset.Trim().Split(','); Guid[] guid_ProjId = new Guid[ProjIdList.Length]; for (int i = 0; i < ProjIdList.Length; i++) { guid_ProjId[i] = new Guid(ProjIdList[i]); } #endregion list_data = list_data.Where(p =>!(guid_ProjId.Contains(p.WareID))).ToList();
(2)當多項查詢的是int型別時;
#region 將string型別轉化為int型別的隱式陣列 string[] ProjTmId_set = ProjTmIdmodel.Trim().Split(','); int?[] ProjTmId_set_num_at = new int?[ProjTmId_set.Length]; #endregion DetailList = DetailList.Where(p => !(ProjTmId_set_num_at).Contains(p.ProjTmId)).ToList();
(3)當多項查詢的是string型別時;
#region string陣列 string[] ProjIdList = ProjIdset.Trim().Split(','); #endregion list_data = list_data.Where(p => !(ProjIdList.Contains(p.WareName))).ToList();
總結:IN與Not IN通過“!”來區分,且除string的型別欄位外,其他型別都需先進行陣列轉換,方可使用!
如果哪裡有寫錯的地方,歡迎指正!
如果寫的對你有所幫助的話,記得點個贊哦!