Maison >développement back-end >C++ >Comment puis-je utiliser Lambda/LINQ pour rechercher plusieurs mots clés dans une liste de commentaires ?
Recherche multi-mots-clés utilisant Lambda/LINQ avec conditions
Ce guide montre comment rechercher plusieurs mots-clés dans la liste des commentaires en même temps. Bien qu'il existe de nombreux exemples de recherche d'un seul mot-clé, ce guide fournit une solution pour rechercher n'importe quelle instance de mot-clé en une seule fois.
Pour atteindre cet objectif, vous pouvez suivre les étapes suivantes :
<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>
Ici, la méthode FilterByItems
génère un prédicat qui effectue le filtrage requis. Le paramètre keywords
représente une liste de termes de recherche et l'expression lambda fournie vérifie si le champ Comments
contient l'un de ces mots-clés. Le paramètre isOr
détermine si le filtrage est un OU logique (tous les mots-clés correspondent) ou un ET logique (tous les mots-clés correspondent).
FilterByItems
construit un prédicat en parcourant les mots-clés. Il remplace les arguments de l'expression lambda fournie par chaque mot-clé, créant une condition distincte pour chaque mot-clé. Enfin, il combine ces conditions en utilisant OR ou AND en fonction de la valeur isOr
, créant un prédicat unique pouvant être appliqué à la requête.
ExpressionReplacer
est utilisée pour remplacer des expressions dans les expressions lambda. Il prend un dictionnaire d'expressions en entrée et modifie les expressions originales, en les remplaçant par des expressions correspondant au dictionnaire. Cela permet une modification dynamique des prédicats en fonction des mots-clés fournis.
Avec cette approche, vous pouvez utiliser la syntaxe Lambda/LINQ pour rechercher plusieurs mots-clés dans les commentaires de manière efficace et efficiente.
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!