C# 动态Lambda表达式
2021-05-17 08:29
标签:list() ESS address pil parameter har lse sys out 借助一个强大的Nuget 包可以很方便地解析执行Lambda表达式格式的字符串:System.Linq.Dynamic.Core github: https://github.com/StefH/System.Linq.Dynamic.Core // 匿名类 C# 动态Lambda表达式 标签:list() ESS address pil parameter har lse sys out 原文地址:https://www.cnblogs.com/lao-tang/p/11780266.html
//匿名类
var a = new { Age = 1, Name = "小姐姐" };
Type aType = a.GetType();
var dataParameter = Expression.Parameter(aType, "data"); // 定义 data => 且data类型
var expar = DynamicExpressionParser.ParseLambda(new[] { dataParameter }, typeof(bool), "data.Age > 5 && data.Name == \"小哥哥\""); // 字段名也可以写小写(Age == age)这一点很方便
// 执行Lambda表达式
var result = cancelExpr.Compile().DynamicInvoke(a);
// outPut: false;
// 等同于: var result = a.Age > 5 && a.Name == "小哥哥";
public class Teach
{
public string Name { get; set; }
public int Age { get; set; }
public string AddressInfo { get; set; }
}
var list = new List