Maison > développement back-end > C++ > Comment rechercher efficacement plusieurs mots-clés dans une liste à l'aide de Lambda/LINQ ?

Comment rechercher efficacement plusieurs mots-clés dans une liste à l'aide de Lambda/LINQ ?

Susan Sarandon
Libérer: 2025-01-21 11:56:09
original
502 Les gens l'ont consulté

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

Lambda/LINQ combine Contient des conditions pour la recherche multi-mots clés

Dans de nombreuses opérations de base de données, il est souvent nécessaire de rechercher des mots-clés spécifiques dans les champs de texte. Cela implique généralement l'utilisation de l'opérateur LIKE en SQL, par exemple :

<code class="language-sql">SELECT * FROM MainList
WHERE Comment LIKE '%keyword1%'
OR Comment LIKE '%keyword2%'</code>
Copier après la connexion

Cette requête recherche chaque mot-clé séparément, ce qui donne une requête complexe contenant plusieurs clauses LIKE. Pour effectuer une recherche similaire à l'aide de Lambda/LINQ en C#, vous devez envisager le scénario suivant :

Conditions connues :

  • MainList : Liste contenant le champ Commentaires
  • mots-clés : liste de mots-clés à rechercher

Résultats attendus :

  • Une nouvelle liste contenant les enregistrements dont le champ Commentaires dans MainList contient n'importe quel mot-clé de la liste de mots-clés.

La solution utilise une méthode d'extension appelée FilterByItems :

<code class="language-csharp">var newList = MainList
   .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
   .ToList();</code>
Copier après la connexion

La méthode FilterByItems accepte les paramètres suivants :

  • articles : liste de mots-clés à rechercher
  • filterPattern : une expression utilisée pour vérifier si un enregistrement contient un mot-clé spécifique
  • isOr : un indicateur indiquant s'il faut utiliser l'opérateur OR ou AND pour combiner des prédicats (la valeur par défaut est OR)

Cette méthode remplace les paramètres d'espace réservé dans l'expression filterPattern par chaque mot-clé de la liste des éléments. Le prédicat généré est ensuite utilisé pour filtrer la MainList.

La classe ExpressionReplacer gère le remplacement des paramètres dans les prédicats. Il remplace les paramètres d'espace réservé par des valeurs de mots clés réelles.

Cette approche permet une recherche efficace de plusieurs mots-clés dans une seule requête, réduisant ainsi le besoin de plusieurs clauses LIKE et simplifiant les instructions SQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal