Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah LINQ Dinamik Boleh Memudahkan Penukaran Pokok Ungkapan Rentetan ke LINQ?
Dalam pembangunan perisian, mungkin perlu untuk menilai ungkapan boolean terhadap objek data pada masa jalan. Satu pendekatan untuk mencapai ini melibatkan menukar ungkapan kepada pokok ekspresi LINQ. Di sini, kami meneroka penyelesaian yang dioptimumkan untuk tugasan ini.
Daripada membina tatabahasa dan penghurai yang kompleks, kami boleh memanfaatkan perpustakaan LINQ Dinamik. Pustaka ini menyediakan kaedah yang mudah untuk menyusun ungkapan rentetan secara dinamik ke dalam pepohon ekspresi.
Menggunakan Dynamic LINQ, penyelesaiannya melibatkan langkah berikut:
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(); } }Kesimpulan
Dengan menggunakan Dynamic LINQ, kami boleh memudahkan penukaran ungkapan boolean kepada ungkapan pokok, menghapuskan keperluan untuk penghurai tersuai. Penyelesaian ini cekap dan fleksibel, menjadikannya pilihan yang sesuai untuk penilaian ekspresi dinamik.
Atas ialah kandungan terperinci Bagaimanakah LINQ Dinamik Boleh Memudahkan Penukaran Pokok Ungkapan Rentetan ke LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!