国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#反射表達式樹模糊搜索示例

2020-01-24 02:47:22
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

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;

        }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇远县| 永安市| 张掖市| 阿勒泰市| 仪陇县| 阳曲县| 平谷区| 华容县| 吴旗县| 彭泽县| 东乡县| 舟山市| 崇明县| 泰和县| 夏邑县| 万安县| 襄垣县| 宁武县| 讷河市| 长春市| 乌兰县| 松阳县| 于田县| 黎平县| 灵石县| 甘德县| 十堰市| 荥经县| 林甸县| 兴国县| 潼关县| 铁力市| 广宗县| 祁门县| 壶关县| 贵阳市| 建平县| 咸丰县| 象山县| 定日县| 崇文区|