ダイナミックLINQ:特定の列の動的選択
問題で提供されている
データのようなクラスのようなクラスを扱う場合、LINQ操作中に特定の列を選択する必要があります。このタスクは、動的に作成されたlambda式を
selectメソッドに渡すことで完了できます。
このため、createNewStatement
メソッド。入力として必要なフィールド名を含む文字列を受信し、必要な列を実行するラムダ式を動的に構築します。この方法では:
式パラメーターを作成し、Lambdaに渡された入力オブジェクトを示します。
expression.new メソッドを使用して、- data
クラスの新しい例を作成します。 -
expression.splitメソッドを使用して、入力文字列を単一のフィールド名のリストに分割します。
各フィールド名で、
type.getProperty -
データクラスで対応する属性を取得します。
- expression.property を使用して、検索属性の元の値。
expression.bindを使用して、新しいインスタンスで属性値を設定するバインディング式を作成します。
- expression.memberinit式式を単一の初期化式にバインドします。
最後に、 expression.lambda- を使用して、ラムダ式を作成し、適切なタイプの手数料にコンパイルします。
createNewStatement
メソッドを使用すると、必要なフィールド名をパラメーターとして使用して特定の列を動的に選択することで呼び出すことができます。たとえば、- field1およびfield2
列:- 列:を選択します。
この方法は、選択したフィールドがコンパイル中に不明であっても、列を動的に選択する一般的な方法を提供します。
以上が動的LINQはどのようにして特定の列をオンデマンドを選択できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。