Lambda/LINQ kombiniert Enthält Bedingungen für die Suche mit mehreren Schlüsselwörtern
Bei vielen Datenbankoperationen ist es oft notwendig, in Textfeldern nach bestimmten Schlüsselwörtern zu suchen. Dies beinhaltet normalerweise die Verwendung des LIKE-Operators in SQL, zum Beispiel:
<code class="language-sql">SELECT * FROM MainList WHERE Comment LIKE '%keyword1%' OR Comment LIKE '%keyword2%'</code>
Diese Abfrage durchsucht jedes Schlüsselwort separat, was zu einer komplexen Abfrage führt, die mehrere LIKE-Klauseln enthält. Um eine ähnliche Suche mit Lambda/LINQ in C# durchzuführen, müssen Sie das folgende Szenario berücksichtigen:
Bekannte Erkrankungen:
Erwartete Ergebnisse:
Die Lösung nutzt eine Erweiterungsmethode namens FilterByItems:
<code class="language-csharp">var newList = MainList .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true) .ToList();</code>
FilterByItems-Methode akzeptiert die folgenden Parameter:
Diese Methode ersetzt die Platzhalterparameter im filterPattern-Ausdruck durch jedes Schlüsselwort in der Elementliste. Das generierte Prädikat wird dann zum Filtern der MainList verwendet.
Die ExpressionReplacer-Klasse übernimmt die Parameterersetzung in Prädikaten. Es ersetzt Platzhalterparameter durch tatsächliche Schlüsselwortwerte.
Dieser Ansatz ermöglicht die effiziente Suche nach mehreren Schlüsselwörtern in einer Abfrage, wodurch die Notwendigkeit mehrerer LIKE-Klauseln reduziert und SQL-Anweisungen vereinfacht werden.
Das obige ist der detaillierte Inhalt vonWie kann man mit Lambda/LINQ effizient nach mehreren Schlüsselwörtern in einer Liste suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!