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á)式樹實(shí)現(xiàn)對(duì)象復(fù)制的示例代碼
- C#表達(dá)式樹Expression動(dòng)態(tài)創(chuàng)建表達(dá)式
- C#表達(dá)式樹Expression基礎(chǔ)講解
- C# IQueryable<T>揭開表達(dá)式樹的神秘面紗
- C# Lambda表達(dá)式及Lambda表達(dá)式樹的創(chuàng)建過程
- C#用表達(dá)式樹構(gòu)建動(dòng)態(tài)查詢的方法
- C#表達(dá)式樹的基本用法講解
- C# 快速高效率復(fù)制對(duì)象(表達(dá)式樹)
- 淺談c#表達(dá)式樹Expression簡單類型比較demo
- C# 表達(dá)式樹Expression Trees的知識(shí)梳理
- C#之Expression表達(dá)式樹實(shí)例
- C#表達(dá)式樹講解
相關(guān)文章
C#正則表達(dá)式獲取下拉菜單(select)的相關(guān)屬性值
這篇文章主要介紹了C#正則表達(dá)式獲取下拉菜單(select)的相關(guān)屬性值,比如可以獲得name屬性的值、value值、指定值,需要的朋友可以參考下2014-07-07如何利用C#正則表達(dá)式判斷是否是有效的文件及文件夾路徑
項(xiàng)目中少不了讀取或設(shè)置文件路徑的功能,如何才能對(duì)輸入的路徑是否合法進(jìn)行判斷呢?下面這篇文章主要給大家介紹了關(guān)于C#利用正則表達(dá)式判斷是否是有效的文件及文件夾路徑的相關(guān)資料,需要的朋友可以參考下2022-04-04C#實(shí)現(xiàn)WinForm捕獲最小化事件的方法
這篇文章主要介紹了C#實(shí)現(xiàn)WinForm捕獲最小化事件的方法,需要的朋友可以參考下2014-08-08Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)屏幕遮罩
這篇文章主要為大家詳細(xì)介紹了Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)屏幕遮罩效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02