この例では、式ツリーを使用して LINQ ステートメントを動的に作成し、複数のプロパティを持つ匿名型を選択する方法を示します。提供されているコード スニペットは、プロパティが 1 つだけある匿名型を選択する方法を示していますが、私たちの目標は、この機能を拡張して複数のプロパティをサポートすることです。
これを行うには、反射放出とヘルパー クラスを組み合わせて使用します。ヘルパー クラスの SelectDynamic
拡張メソッドは、複数のプロパティを持つ匿名型の選択をサポートします。フィールド名のリストを引数として受け取り、匿名型を表す動的型を構築し、必要なメンバー バインディングを適用して必要な式ツリーを作成します。
LinqRuntimeTypeBuilder
クラスは、指定されたフィールド名に基づいて実行時に動的タイプを生成するために使用されます。キャッシュ メカニズムを採用して型の作成を最適化し、指定されたフィールド名がソース型の実際のプロパティに対応することを検証することで型の安全性を確保します。
提供されたコード例は、複数のプロパティを持つ匿名型を選択するための LINQ 式ツリーの作成を効率的に処理します。このアプローチは、遅延バインドされたデータを処理する場合に特に役立ちます。生成された型の動的な性質により IntelliSense は備わっていませんが、動的なデータ処理のための柔軟なソリューションを提供します。
以上が複数のプロパティを持つ匿名型を選択するための LINQ 式ツリーを動的に生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。