Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mengoptimumkan WHERE IN Pertanyaan dalam LINQ untuk Prestasi Lebih Baik?

Bagaimana Saya Boleh Mengoptimumkan WHERE IN Pertanyaan dalam LINQ untuk Prestasi Lebih Baik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-06 16:56:40183semak imbas

How Can I Optimize WHERE IN Queries in LINQ for Better Performance?

Menggunakan Klausa WHERE IN dalam LINQ untuk Meningkatkan Prestasi

Apabila bekerja dengan set data yang besar, kecekapan kod anda menjadi penting. Dalam SQL Server, klausa WHERE IN membenarkan anda menapis rekod berdasarkan berbilang nilai dalam julat yang ditentukan. Ini boleh meningkatkan prestasi pertanyaan dengan ketara berbanding menggunakan berbilang keadaan ATAU.

LINQ (Language-Integrated Query) menyediakan fungsi yang serupa untuk pembangun C#. Walau bagaimanapun, sintaks asas mungkin tidak menawarkan prestasi optimum. Dalam artikel ini, kami membentangkan pendekatan yang lebih cekap untuk melaksanakan pertanyaan WHERE IN dalam LINQ.

Pertimbangkan blok kod berikut:

public List<State> Wherein(string listofcountrycodes)
{
    string[] 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;
}

Kod ini melaksanakan satu siri pertanyaan untuk setiap nilai dalam tatasusunan listofcountrycodes. Walaupun ia menyelesaikan kerja, ia tidak secekap yang mungkin.

Untuk meningkatkan prestasi, kita boleh menggunakan ungkapan LINQ ringkas berikut:

dataSource.StateList.Where(s => countryCodes.Contains(s.CountryCode))

Dalam ungkapan ini, kami menggunakan kaedah Contains() untuk menyemak sama ada CountryCode setiap Negeri dalam StateList hadir dalam tatasusunan countryCodes. Dengan menggabungkan semua syarat menjadi satu ungkapan, kami mengelakkan overhed prestasi melaksanakan berbilang pertanyaan.

Pendekatan yang dioptimumkan ini menghasilkan peningkatan ketara dalam kelajuan pertanyaan, terutamanya apabila bekerja dengan set data yang besar. Ia menyediakan cara yang lebih bersih dan ringkas untuk melaksanakan operasi WHERE IN dalam LINQ, menjadikan kod anda lebih cekap dan lebih mudah diselenggara.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mengoptimumkan WHERE IN Pertanyaan dalam LINQ untuk Prestasi Lebih Baik?. 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