1. 程式人生 > 實用技巧 >Linq語句in與not in的使用

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的型別欄位外,其他型別都需先進行陣列轉換,方可使用!

如果哪裡有寫錯的地方,歡迎指正!

如果寫的對你有所幫助的話,記得點個贊哦!