ソフトウェア開発では、実行時にデータ オブジェクトに対してブール式を評価することが必要になる場合があります。これを実現する 1 つのアプローチには、式を LINQ 式ツリーに変換することが含まれます。ここでは、このタスクに最適化されたソリューションを検討します。
複雑な文法とパーサーを構築する代わりに、Dynamic LINQ ライブラリを活用できます。このライブラリは、文字列式を動的に式ツリーにコンパイルする便利な方法を提供します。
Dynamic LINQ を使用したソリューションには、次の手順が含まれます:
using System; using System.Linq.Expressions; using System.Linq.Dynamic; class Program { public class Person { public string Name { get; set; } public int Age { get; set; } public int Weight { get; set; } public DateTime FavouriteDay { get; set; } } static void Main() { const string exp = @"(Person.Age > 3 AND Person.Weight > 50) OR Person.Age < 3"; var p = Expression.Parameter(typeof(Person), "Person"); var e = DynamicExpression.ParseLambda(new[] { p }, null, exp); var bob = new Person { Name = "Bob", Age = 30, Weight = 213, FavouriteDay = new DateTime(2000, 1, 1) }; var result = e.Compile().DynamicInvoke(bob); Console.WriteLine(result); Console.ReadKey(); } }結論
By Dynamic LINQ を利用すると、ブール式から式ツリーへの変換を簡素化し、カスタムパーサーが必要です。このソリューションは効率的かつ柔軟であるため、動的な式の評価に適しています。
以上が動的 LINQ はどのようにして文字列から LINQ 式ツリーへの変換を簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。