Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Kaedah `Mengandungi()` LINQ Boleh Menggantikan Klausa `WHERE IN`?
Apabila bekerja dengan pangkalan data, anda mungkin menghadapi keperluan untuk menggunakan klausa WHERE IN untuk menapis hasil berdasarkan berbilang kriteria. Ini boleh dicapai dengan mudah dalam LINQ (Language Integrated Query) menggunakan kaedah Contains().
Untuk menggambarkan, katakan anda ingin mendapatkan semula semua negeri yang tergolong dalam senarai kod negara tertentu. Daripada membelah kod negara secara manual dan menggelungkannya seperti yang dilihat dalam kod asal:
public List<State> Wherein(string listofcountrycodes) { string[] countrycode = null; countrycode = listofcountrycodes.Split(','); List<State> statelist = new List<State>(); for (int i = 0; i < countrycode.Length; i++) { _states.AddRange( from states in _objdatasources.StateList() where states.CountryCode == countrycode[i].ToString() select new State { StateName = states.StateName }); } return _states; }
Anda boleh memudahkan proses ini menggunakan kaedah Contains():
dataSource.StateList.Where(s => countryCodes.Contains(s.CountryCode))
Ungkapan ini mendapatkan semula semua negeri yang kod negaranya terdapat dalam koleksi countryCodes. Ungkapan lambda (s => countryCodes.Contains(s.CountryCode)) menilai kepada benar untuk setiap negeri yang sepadan dengan kriteria yang ditentukan, membolehkan anda menapis hasil dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimanakah Kaedah `Mengandungi()` LINQ Boleh Menggantikan Klausa `WHERE IN`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!