ホームページ > バックエンド開発 > C++ > Lambda/LINQ を使用してコメントのリスト内の複数のキーワードを検索するにはどうすればよいですか?

Lambda/LINQ を使用してコメントのリスト内の複数のキーワードを検索するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-21 12:13:09
オリジナル
880 人が閲覧しました

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

Lambda/LINQ を条件付きで使用した複数キーワード検索

このガイドでは、コメント リスト内の複数のキーワードを同時に検索する方法を説明します。単一のキーワードを検索する例は数多くありますが、このガイドでは、任意のキーワード インスタンスを一度に検索するためのソリューションを提供します。

この目標を達成するには、次の手順を実行できます:

  1. 拡張メソッドの作成:
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)
    {
        // ... 方法实现 ...
    }
}
ログイン後にコピー
  1. 使用法:
var newList = MainList
    .FilterByItems(keywords, (m, k) => m.Comments.Contains(k), true)
    .ToList();
ログイン後にコピー

ここで、FilterByItems メソッドは、必要なフィルタリングを実行する述語を生成します。 keywords パラメーターは検索用語のリストを表し、指定されたラムダ式は Comments フィールドにこれらのキーワードのいずれかが含まれているかどうかをチェックします。 isOr パラメータは、フィルタリングが論理 OR (任意のキーワードが一致) であるか、論理 AND (すべてのキーワードが一致) であるかを決定します。

  1. 拡張メソッドの実装:

FilterByItems メソッドは、キーワードをループして述語を構築します。指定されたラムダ式の引数を各キーワードに置き換えて、キーワードごとに個別の条件を作成します。最後に、isOr 値に基づいて OR または AND を使用してこれらの条件を結合し、クエリに適用できる単一の述語を作成します。

  1. 式置換用の補助クラス:

ExpressionReplacer クラスは、ラムダ式内の式を置換するために使用されます。式の辞書を入力として受け取り、元の式を変更して、辞書に一致する式に置き換えます。これにより、指定されたキーワードに基づいて述語を動的に変更できます。

このアプローチでは、Lambda/LINQ 構文を使用して、コメント内の複数のキーワードを効果的かつ効率的に検索できます。

以上がLambda/LINQ を使用してコメントのリスト内の複数のキーワードを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート