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的使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 NOT IN 的 SQL 到 LINQ 转换

随笔57 sql语句中in与exists,not in与not exists的区别

linq not in

linq not in 查询

Linq not in 写法

LINQ to nHibernate - 将 SQL“NOT IN”表达式转换为 LINQ