Maison > développement back-end > C++ > Comment puis-je utiliser Lambda/LINQ pour rechercher plusieurs mots clés dans une liste de commentaires ?

Comment puis-je utiliser Lambda/LINQ pour rechercher plusieurs mots clés dans une liste de commentaires ?

Barbara Streisand
Libérer: 2025-01-21 12:13:09
original
832 Les gens l'ont consulté

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

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 :

  1. Créer une méthode d'extension :
<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>
Copier après la connexion
  1. Utilisation :
<code class="language-csharp">var newList = MainList
    .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
    .ToList();</code>
Copier après la connexion

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

  1. Mise en œuvre de la méthode d'extension :
La méthode

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.

  1. Classe auxiliaire pour le remplacement d'expression :
La classe

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!

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