时间:2021-05-20
复制代码 代码如下:
public static Expression<Func<T, bool>> GetSearchExpression<T>(string SearchString)
{
Expression<Func<T, bool>> filter = null;
if (string.IsNullOrEmpty(SearchString)) return null;
var left = Expression.Parameter(typeof(T), "m");
Expression expression = Expression.Constant(false);
T obj = default(T);
var type = typeof(T);
obj = (T)Activator.CreateInstance(type);
var propertyInfos = type.GetProperties();
foreach (var propertyInfo in propertyInfos)
{
if (propertyInfo.Name.ToLower() == "id" || propertyInfo.PropertyType == typeof(DateTime)) continue;
Expression tostring = Expression.Call
(
Expression.Property(left, typeof(T).GetProperty(propertyInfo.Name).Name),
typeof(object).GetMethod("ToString", new Type[] { })
);
Expression right = Expression.Call
(
tostring,
typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),
Expression.Constant(SearchString)
);
expression = Expression.Or(right, expression);
}
filter = Expression.Lambda<Func<T, bool>>(expression, new[] { left });
return filter;
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、表达式目录树 表达式目录树,在C#中是Expression来定义的,它是一种语法树,或者说是一种数据结构。其主要用于存储需要计算、运算的一种结构,它只提供
本文介绍在C#中使用匹配中文的正则表达式,包括纯中文、有中文、中文开头、中文结尾等几个正则表达式示例。在正则表达式中,中文可以通过Unicode编码来确定正则表
本文实例为大家分享了C语言实现对后缀表达式(逆波兰表达式)的求解代码,供大家参考,具体内容如下逆波兰表达式:逆波兰表达式又叫后缀表达式。它是由相应的语法树的后序
先给大家介绍下C#中的循环执行for循环在这一节练习中,我们向大家介绍一下C#中的另一种重要的循环语句,for循环。for(表达式1;表达式2;表达式3){循环
表达式树使用一种类似树的结构来表示代码,它的每个节点都是一个表达式,比如方法调用和xnumnum<5;通过API创建表达式树使用API创建表达式,需要使用Exp