>백엔드 개발 >C++ >Lambda/LINQ를 사용하여 목록에서 여러 키워드를 효율적으로 검색하는 방법은 무엇입니까?

Lambda/LINQ를 사용하여 목록에서 여러 키워드를 효율적으로 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-21 11:56:09530검색

How to Efficiently Search for Multiple Keywords in a List Using Lambda/LINQ?

Lambda/LINQ 결합 다중 키워드 검색 조건 포함

많은 데이터베이스 작업에서 텍스트 필드에서 특정 키워드를 검색해야 하는 경우가 많습니다. 여기에는 일반적으로 SQL에서 LIKE 연산자를 사용하는 작업이 포함됩니다. 예:

<code class="language-sql">SELECT * FROM MainList
WHERE Comment LIKE '%keyword1%'
OR Comment LIKE '%keyword2%'</code>

이 쿼리는 각 키워드를 개별적으로 검색하므로 여러 LIKE 절이 포함된 복잡한 쿼리가 생성됩니다. C#에서 Lambda/LINQ를 사용하여 유사한 검색을 수행하려면 다음 시나리오를 고려해야 합니다.

알려진 조건:

  • MainList: 설명 필드가 포함된 목록
  • 키워드: 검색할 키워드 목록

예상 결과:

  • MainList의 Comments 필드에 키워드 목록의 키워드가 포함된 레코드가 포함된 새 목록입니다.

이 솔루션은 FilterByItems라는 확장 방법을 활용합니다.

<code class="language-csharp">var newList = MainList
   .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
   .ToList();</code>

FilterByItems 메소드는 다음 매개변수를 허용합니다.

  • 항목: 검색할 키워드 목록
  • filterPattern: 레코드에 특정 키워드가 포함되어 있는지 확인하는 표현식
  • isOr: 조건자를 결합하기 위해 OR 또는 AND 연산자를 사용할지 여부를 나타내는 플래그(기본값은 OR)

이 메서드는 filterPattern 표현식의 자리 표시자 매개변수를 항목 목록의 각 키워드로 바꿉니다. 생성된 조건자는 MainList를 필터링하는 데 사용됩니다.

ExpressionReplacer 클래스는 조건자의 매개변수 교체를 처리합니다. 자리표시자 매개변수를 실제 키워드 값으로 대체합니다.

이 접근 방식을 사용하면 하나의 쿼리에서 여러 키워드를 효율적으로 검색할 수 있으므로 여러 LIKE 절의 필요성이 줄어들고 SQL 문이 단순화됩니다.

위 내용은 Lambda/LINQ를 사용하여 목록에서 여러 키워드를 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.