Carian berbilang kata kunci menggunakan Lambda/LINQ dengan syarat
Panduan ini menunjukkan cara mencari berbilang kata kunci dalam senarai ulasan pada masa yang sama. Walaupun terdapat banyak contoh mencari satu kata kunci, panduan ini menyediakan penyelesaian untuk mencari mana-mana contoh kata kunci sekali gus.
Untuk mencapai matlamat ini, anda boleh mengambil langkah berikut:
<code class="language-csharp">public static class QueryableExtensions { public static IQueryable<T> FilterByItems<T, TItem>(this IQueryable<T> query, IEnumerable<TItem> items, Expression<Func<T, TItem, bool>> filterPattern, bool isOr) { // ... 方法实现 ... } }</code>
<code class="language-csharp">var newList = MainList .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true) .ToList();</code>
Di sini, kaedah FilterByItems
menjana predikat yang melakukan penapisan yang diperlukan. Parameter keywords
mewakili senarai istilah carian dan ungkapan lambda yang disediakan menyemak sama ada medan Comments
mengandungi mana-mana kata kunci ini. Parameter isOr
menentukan sama ada penapisan adalah logik ATAU (sebarang padanan kata kunci) atau logik DAN (semua kata kunci padanan).
FilterByItems
membina predikat dengan menggelung pada kata kunci. Ia menggantikan hujah dalam ungkapan lambda yang disediakan dengan setiap kata kunci, mewujudkan syarat berasingan untuk setiap kata kunci. Akhir sekali, ia menggabungkan syarat ini menggunakan OR atau DAN berdasarkan nilai isOr
, mewujudkan satu predikat yang boleh digunakan pada pertanyaan.
ExpressionReplacer
digunakan untuk menggantikan ungkapan dalam ungkapan lambda. Ia memerlukan kamus ungkapan sebagai input dan mengubah suai ungkapan asal, menggantikannya dengan ungkapan yang sepadan dengan kamus. Ini membolehkan pengubahsuaian dinamik predikat berdasarkan kata kunci yang dibekalkan.
Dengan pendekatan ini, anda boleh menggunakan sintaks Lambda/LINQ untuk mencari berbilang kata kunci dalam ulasan dengan berkesan dan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Lambda/LINQ untuk Mencari Berbilang Kata Kunci dalam Senarai Komen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!