LINQ 式ツリーを介した複数のプロパティを持つ匿名型の動的選択
このガイドでは、複数のプロパティを持つ匿名型を動的に選択するための LINQ 式ツリーを構築する方法について詳しく説明します。
問題:
単一のプロパティを超えて匿名型を選択するための LINQ 式ツリーを作成することには課題が伴います。 複数のプロパティを指定する必要がある場合、標準的な方法では不十分なことがよくあります。
アプローチ:
このソリューションでは、Reflection Emit とヘルパー クラス (以下を参照) を使用して、提供されたプロパティ リストに基づいて動的タイプを生成します。 これにより、複数のプロパティを持つ匿名型の選択が可能になります。
動的型作成ヘルパー クラス:
public static class LinqRuntimeTypeBuilder { // ... (Implementation details omitted for brevity) }
動的選択の拡張メソッド:
public static IQueryable SelectDynamic(this IQueryable source, IEnumerable<string> fieldNames) { // ... (Implementation details omitted for brevity) }
使用例:
この拡張メソッドはプロジェクトに追加して次のように使用できます:
var v = from c in Countries where c.City == "London" select new { c.Name, c.Population };
制限事項:
型は実行時に作成されるため、IntelliSense は使用できません。 ただし、この方法は、遅延バインド データ バインディングが必要な状況では非常に役立ちます。
以上がLINQ 式ツリーを使用して複数のプロパティを持つ匿名型を動的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。