c# 拼接lambda表达式 (转载)
生活随笔
收集整理的这篇文章主要介绍了
c# 拼接lambda表达式 (转载)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
项目中用到,找不到出处了
1. 添加类:
public static class PredicateExtensions{public static Expression<Func<T, bool>> True<T>(){return f => true;}public static Expression<Func<T, bool>> False<T>(){return f => false;}public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2){var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>());return Expression.Lambda<Func<T, bool>>(Expression.Or(expression1.Body, invokedExpression), expression1.Parameters);}public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2){var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>());return Expression.Lambda<Func<T, bool>>(Expression.And(expression1.Body, invokedExpression), expression1.Parameters);}}
2. 用法:
Expression<Func<XXX, bool>> expression = t => true;expression = expression.And(t => t.AAA == 1);expression = expression.And(t => t.BBB > 1);var ds = products.AsQueryable().Where(expression).ToList();转载于:https://www.cnblogs.com/paopaohui/p/7885954.html
总结
以上是生活随笔为你收集整理的c# 拼接lambda表达式 (转载)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 分布式监控报警平台Centreon之:C
- 下一篇: box unboxing(装箱 拆箱)