Heim > Backend-Entwicklung > C++ > Wie kann ich Lambda/LINQ verwenden, um in einer Kommentarliste nach mehreren Schlüsselwörtern zu suchen?

Wie kann ich Lambda/LINQ verwenden, um in einer Kommentarliste nach mehreren Schlüsselwörtern zu suchen?

Barbara Streisand
Freigeben: 2025-01-21 12:13:09
Original
865 Leute haben es durchsucht

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

Multi-Keyword-Suche mit Lambda/LINQ mit Bedingungen

Diese Anleitung zeigt, wie Sie gleichzeitig nach mehreren Schlüsselwörtern in der Kommentarliste suchen. Obwohl es viele Beispiele für die Suche nach einem einzelnen Schlüsselwort gibt, bietet dieser Leitfaden eine Lösung für die Suche nach einer beliebigen Schlüsselwortinstanz auf einmal.

Um dieses Ziel zu erreichen, können Sie die folgenden Schritte unternehmen:

  1. Erweiterungsmethode erstellen:
<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>
Nach dem Login kopieren
  1. Verwendung:
<code class="language-csharp">var newList = MainList
    .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
    .ToList();</code>
Nach dem Login kopieren

Hier generiert die Methode FilterByItems ein Prädikat, das die erforderliche Filterung durchführt. Der Parameter keywords stellt eine Liste von Suchbegriffen dar und der bereitgestellte Lambda-Ausdruck prüft, ob das Feld Comments eines dieser Schlüsselwörter enthält. Der Parameter isOr bestimmt, ob die Filterung ein logisches ODER (alle Schlüsselwörter stimmen überein) oder ein logisches UND (alle Schlüsselwörter stimmen überein) erfolgt.

  1. Implementierung der Erweiterungsmethode:
Die

FilterByItems-Methode erstellt ein Prädikat, indem sie die Schlüsselwörter durchläuft. Es ersetzt die Argumente im bereitgestellten Lambda-Ausdruck durch jedes Schlüsselwort und erstellt so eine separate Bedingung für jedes Schlüsselwort. Schließlich werden diese Bedingungen mithilfe von ODER oder UND basierend auf dem Wert isOr kombiniert, wodurch ein einzelnes Prädikat erstellt wird, das auf die Abfrage angewendet werden kann.

  1. Hilfsklasse zur Ausdrucksersetzung:
Die Klasse

ExpressionReplacer wird verwendet, um Ausdrücke in Lambda-Ausdrücken zu ersetzen. Es verwendet ein Wörterbuch mit Ausdrücken als Eingabe, ändert die ursprünglichen Ausdrücke und ersetzt sie durch Ausdrücke, die dem Wörterbuch entsprechen. Dies ermöglicht eine dynamische Änderung von Prädikaten basierend auf bereitgestellten Schlüsselwörtern.

Mit diesem Ansatz können Sie mithilfe der Lambda/LINQ-Syntax effektiv und effizient nach mehreren Schlüsselwörtern in Kommentaren suchen.

Das obige ist der detaillierte Inhalt vonWie kann ich Lambda/LINQ verwenden, um in einer Kommentarliste nach mehreren Schlüsselwörtern zu suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage