Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menggunakan Lambda/LINQ untuk Mencari Berbilang Kata Kunci dalam Senarai Komen?

Bagaimanakah Saya Boleh Menggunakan Lambda/LINQ untuk Mencari Berbilang Kata Kunci dalam Senarai Komen?

Barbara Streisand
Lepaskan: 2025-01-21 12:13:09
asal
833 orang telah melayarinya

How Can I Use Lambda/LINQ to Search for Multiple Keywords in a List of Comments?

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:

  1. Buat kaedah sambungan:
<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>
Salin selepas log masuk
  1. Penggunaan:
<code class="language-csharp">var newList = MainList
    .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
    .ToList();</code>
Salin selepas log masuk

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).

  1. Pelaksanaan kaedah sambungan:
Kaedah

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.

  1. Kelas tambahan untuk penggantian ungkapan:
Kelas

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan