Lambda/LINQ 결합 다중 키워드 검색 조건 포함
많은 데이터베이스 작업에서 텍스트 필드에서 특정 키워드를 검색해야 하는 경우가 많습니다. 여기에는 일반적으로 SQL에서 LIKE 연산자를 사용하는 작업이 포함됩니다. 예:
<code class="language-sql">SELECT * FROM MainList WHERE Comment LIKE '%keyword1%' OR Comment LIKE '%keyword2%'</code>
이 쿼리는 각 키워드를 개별적으로 검색하므로 여러 LIKE 절이 포함된 복잡한 쿼리가 생성됩니다. C#에서 Lambda/LINQ를 사용하여 유사한 검색을 수행하려면 다음 시나리오를 고려해야 합니다.
알려진 조건:
예상 결과:
이 솔루션은 FilterByItems라는 확장 방법을 활용합니다.
<code class="language-csharp">var newList = MainList .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true) .ToList();</code>
FilterByItems 메소드는 다음 매개변수를 허용합니다.
이 메서드는 filterPattern 표현식의 자리 표시자 매개변수를 항목 목록의 각 키워드로 바꿉니다. 생성된 조건자는 MainList를 필터링하는 데 사용됩니다.
ExpressionReplacer 클래스는 조건자의 매개변수 교체를 처리합니다. 자리표시자 매개변수를 실제 키워드 값으로 대체합니다.
이 접근 방식을 사용하면 하나의 쿼리에서 여러 키워드를 효율적으로 검색할 수 있으므로 여러 LIKE 절의 필요성이 줄어들고 SQL 문이 단순화됩니다.
위 내용은 Lambda/LINQ를 사용하여 목록에서 여러 키워드를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!