c#反射表達(dá)式樹模糊搜索示例
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;
}
- C#使用表達(dá)式樹實現(xiàn)對象復(fù)制的示例代碼
- C#表達(dá)式樹Expression動態(tài)創(chuàng)建表達(dá)式
- C#表達(dá)式樹Expression基礎(chǔ)講解
- C# IQueryable<T>揭開表達(dá)式樹的神秘面紗
- C# Lambda表達(dá)式及Lambda表達(dá)式樹的創(chuàng)建過程
- C#用表達(dá)式樹構(gòu)建動態(tài)查詢的方法
- C#表達(dá)式樹的基本用法講解
- C# 快速高效率復(fù)制對象(表達(dá)式樹)
- 淺談c#表達(dá)式樹Expression簡單類型比較demo
- C# 表達(dá)式樹Expression Trees的知識梳理
- C#之Expression表達(dá)式樹實例
- C#表達(dá)式樹講解
相關(guān)文章
C#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證
下面小編就為大家?guī)硪黄狢#進(jìn)階系列 WebApi身份認(rèn)證解決方案推薦:Basic基礎(chǔ)認(rèn)證。小編覺得挺不錯的,現(xiàn)在分享給大家。給大家一個參考。一起跟隨小編過來看看吧2016-03-03
C#中DateTimePicker默認(rèn)值顯示為空的問題
這篇文章主要介紹了C#中DateTimePicker默認(rèn)值顯示為空的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

