Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Kaedah `Mengandungi()` LINQ Boleh Menggantikan Klausa `WHERE IN`?

Bagaimanakah Kaedah `Mengandungi()` LINQ Boleh Menggantikan Klausa `WHERE IN`?

DDD
DDDasal
2025-01-06 17:53:43975semak imbas

How Can LINQ's `Contains()` Method Replace a `WHERE IN` Clause?

Where IN Klausa dalam LINQ

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn