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的类型字段外,其他类型都需先进行数组转换,方可使用!
如果哪里有写错的地方,欢迎指正!
如果写的对你有所帮助的话,记得点个赞哦!
补充:C# string数组转int数组
//字符串数组(源数组) string[] sNums = new[] {"1", "2"}; //整型数组(目标数组) int[] iNums; //转换方法 iNums = Array.ConvertAll<string, int>(sNums , s => int.Parse(s)); //转换方法-简写 iNums = Array.ConvertAll<string, int>(sNums , int.Parse); //转换方法-继续简写 iNums = Array.ConvertAll(sNums , int.Parse);
Array.ConvertAll(sNums , int.Parse)
: 将一种类型的数组转换成另一种类型的数组sNums
: 要转换成目标数组的源数组int.Parse
: 将源数据类型转换成目标数据类型的强制转换方法
C#相关写法