我有一个对象和一个linq表达式。我想通过这样的表达式来验证对象:
obj: Account account = new Account(0);
exp: (a => a.balance == 0)
public bool IsAccountClosed(Account account, Expression<Func<TEntity, bool>> matchingCriteria)
{
// ... ???
}
答案 0 :(得分:2)
您不需要Expression
,只需Func
,其第一个通用参数应为Account
:
public bool CheckAccountCriteria(Account acccount, Func<Account, bool> matchingCriteria)
{
if (matchingCriteria(account))
{
// matches the criteria
}
}
你也可以使用Predicate<Account>
,这可能是测试条件值的更惯用的方法:
public bool CheckAccountCriteria(Account acccount, Predicate<Account> matchingCriteria)
{
if (matchingCriteria(account))
{
// matches the criteria
}
}
但是,正如死亡外科医生指出的那样,你可能只会让不必要的东西变得错综复杂。
答案 1 :(得分:0)
你的问题是什么?如果你想检查帐户,你可以这样做,没有linq表达。
public bool IsAccountClosed(Account acccount)
{
return account.balance == 0;
}