Linq语句in与not in的使用
Posted lysouko
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linq语句in与not in的使用相关的知识,希望对你有一定的参考价值。
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 = 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();
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的类型字段外,其他类型都需先进行数组转换,方可使用!
如果哪里有写错的地方,欢迎指正!
如果写的对你有所帮助的话,记得点个赞哦!
以上是关于Linq语句in与not in的使用的主要内容,如果未能解决你的问题,请参考以下文章