소프트웨어 개발에서는 런타임 시 데이터 객체에 대한 부울 표현식을 평가해야 할 수도 있습니다. 이를 달성하기 위한 한 가지 접근 방식은 식을 LINQ 식 트리로 변환하는 것입니다. 여기서는 이 작업에 최적화된 솔루션을 탐색합니다.
복잡한 문법과 파서를 구축하는 대신 동적 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(); } }결론
Dynamic LINQ를 활용하면 부울 표현식을 표현식 트리로 변환하는 과정을 단순화할 수 있습니다. 맞춤형 파서가 필요합니다. 이 솔루션은 효율적이고 유연하므로 동적 표현 평가에 적합한 선택입니다.
위 내용은 동적 LINQ가 문자열-LINQ 식 트리 변환을 어떻게 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!