My.RolePermission.Model/SearchParam/PredicateBuilder.cs
(完整代码) 1KB/****************************************************************************
*Copyright (c) 2016 All Rights Reserved.
*CLR版本: 4.0.30319.42000
*机器名称:DESKTOP-V7CFIC3
*公司名称:
*命名空间:My.RolePermission.Model.SearchParam
*文件名: PredicateBuilder
*版本号: V1.0.0.0
*唯一标识:c209f252-1b42-4e68-9e1f-07d1aeb6599e
*当前的用户域:DESKTOP-V7CFIC3
*创建人: zouqi
*电子邮箱:zouyujie@126.com
*创建时间:2016/6/25 9:22:52
*描述:
*
*=====================================================================
*修改标记
*修改时间:2016/6/25 9:22:52
*修改人: zouqi
*版本号: V1.0.0.0
*描述:
*
*****************************************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace My.RolePermission.Model.SearchParam
{
public static class PredicateBuilder
{
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>> expr1,Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
return Expression.Lambda<Func<T, bool>>
(Expression.Or(expr1.Body, invokedExpr), expr1.Parameters);
}
public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expr1,Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
return Expression.Lambda<Func<T, bool>>
(Expression.And(expr1.Body, invokedExpr), expr1.Parameters);
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。