Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melakukan Perbandingan Rentetan Tidak Peka Huruf Menggunakan Kaedah Mengandungi LINQ?
Perbandingan Rentetan Tidak Peka Huruf Menggunakan Kaedah Mengandungi LINQ
Apabila bekerja dengan perbandingan rentetan dalam pertanyaan LINQ, adalah penting untuk mempertimbangkan kepekaan huruf. Secara lalai, kaedah Contains adalah sensitif huruf besar-besaran, bermakna "CaseSensitive" dan "casesensitive" tidak akan sepadan.
Masalah:
Dalam pertanyaan LINQ berikut, kami berhasrat untuk mendapatkan semula entiti FACILITY_ITEM berdasarkan penapis huraian. Walau bagaimanapun, pertanyaan pada masa ini adalah sensitif huruf besar dan mungkin tidak mengembalikan hasil yang diingini.
public IQueryable<FACILITY_ITEM> GetFacilityItemRootByDescription(string description) { return this.ObjectContext.FACILITY_ITEM.Where(fi => fi.DESCRIPTION.Contains(description)); }
Penyelesaian:
Untuk menjadikan perbandingan tidak sensitif huruf, kami boleh gunakan kaedah ToLower() sebelum melakukan pemeriksaan Mengandungi. Ini menukar kedua-dua penapis perihalan dan nilai pangkalan data kepada huruf kecil, memastikan perbandingan tidak peka huruf besar-kecil.
fi => fi.DESCRIPTION.ToLower().Contains(description.ToLower())
Dengan menggunakan ungkapan yang dikemas kini ini, pertanyaan akan mengembalikan hasil apabila perihalan item kemudahan sepadan dengan penapis perihalan, tanpa mengira kesnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Perbandingan Rentetan Tidak Peka Huruf Menggunakan Kaedah Mengandungi LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!