Linq表达式转换

时间:2012-12-28 06:13:40

标签: c# linq lambda

只是两个简单的问题

1.以下声明是什么?

Func<usersDto, bool> predicate

2.它与下面有什么不同?

Expression<Func<usersDto, bool>>

3.如何将Func<type1,bool>转换为Func<type2,bool>。看起来像先进的东西我

示例

GetUsers(Func<UserDto,bool> predicate)
{    
  return EfContext.Users.Where ( convert above predicate to be passed here)
                        .Cast<>();       
}

1 个答案:

答案 0 :(得分:3)

Func<T, TResult>是一个内置委托,它接受类型为T的参数,并返回类型为TResult的值。在您的问题中,predicate是一个委托,其中包含usersDto的实例并返回bool

Expression<Func<T, TResult>>是一个未编译的 Func<T, TResult>,可以将其分析,或作为一个部分打包到另一个表达式中。

问题3:见my answer for this question