Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencari Berbilang Kata Kunci dengan Cekap dalam Senarai Menggunakan Lambda/LINQ?

Bagaimana untuk Mencari Berbilang Kata Kunci dengan Cekap dalam Senarai Menggunakan Lambda/LINQ?

Susan Sarandon
Lepaskan: 2025-01-21 11:56:09
asal
502 orang telah melayarinya

How to Efficiently Search for Multiple Keywords in a List Using Lambda/LINQ?

Lambda/LINQ menggabungkan Mengandungi syarat untuk carian berbilang kata kunci

Dalam banyak operasi pangkalan data, selalunya perlu mencari kata kunci tertentu dalam medan teks. Ini biasanya melibatkan penggunaan operator LIKE dalam SQL, contohnya:

<code class="language-sql">SELECT * FROM MainList
WHERE Comment LIKE '%keyword1%'
OR Comment LIKE '%keyword2%'</code>
Salin selepas log masuk

Pertanyaan ini mencari setiap kata kunci secara berasingan, menghasilkan pertanyaan kompleks yang mengandungi berbilang klausa SUKA. Untuk melakukan carian serupa menggunakan Lambda/LINQ dalam C#, anda perlu mempertimbangkan senario berikut:

Syarat yang diketahui:

  • Senarai Utama: Senarai yang mengandungi medan Komen
  • kata kunci: senarai kata kunci untuk dicari

Keputusan yang dijangkakan:

  • Senarai baharu yang mengandungi rekod yang medan Komennya dalam Senarai Utama mengandungi sebarang kata kunci dalam senarai kata kunci.

Penyelesaian menggunakan kaedah sambungan yang dipanggil FilterByItems:

<code class="language-csharp">var newList = MainList
   .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
   .ToList();</code>
Salin selepas log masuk

Kaedah FilterByItems menerima parameter berikut:

  • item: senarai kata kunci untuk dicari
  • filterPattern: ungkapan yang digunakan untuk menyemak sama ada rekod mengandungi kata kunci tertentu
  • isOr: bendera yang menunjukkan sama ada hendak menggunakan operator ATAU atau DAN untuk menggabungkan predikat (lalai ialah ATAU)

Kaedah ini menggantikan parameter pemegang tempat dalam ungkapan FilterPattern dengan setiap kata kunci dalam senarai item. Predikat yang dihasilkan kemudiannya digunakan untuk menapis Senarai Utama.

Kelas ExpressionReplacer mengendalikan penggantian parameter dalam predikat. Ia menggantikan parameter pemegang tempat dengan nilai kata kunci sebenar.

Pendekatan ini membolehkan carian cekap berbilang kata kunci dalam satu pertanyaan, mengurangkan keperluan untuk berbilang klausa LIKE dan memudahkan pernyataan SQL.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Berbilang Kata Kunci dengan Cekap dalam Senarai Menggunakan Lambda/LINQ?. 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