首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Predicate<T>参数

如何使用Predicate<T>参数
EN

Stack Overflow用户
提问于 2017-03-11 18:05:30
回答 1查看 114关注 0票数 2

如何解析方法实现中的contents Predicate<T>参数?例如,我有这样的方法:

代码语言:javascript
复制
public static List<MyEntity> Find(Predicate<MyEntity> filters)

当我使用此方法时,我将一些谓词(即:filters.Name == "xyz")传递给该方法。我希望能够确定表达式,即能够从它生成SQL。

EN

回答 1

Stack Overflow用户

发布于 2017-03-11 18:12:54

正如您可能知道的,Preidcate<T>表示一个接受T类型的参数并返回bool值的方法。要使用它,只需将其视为一种方法。

下面是一个示例:

代码语言:javascript
复制
var entity = <get an entity some where>;
if (filters(entity)) {
    // entity satisfies the predicate
}

从您的方法的名称和签名判断,您似乎希望找到满足谓词的所有实体。可能是这样的:

代码语言:javascript
复制
var list = new List<Entity>();
foreach (var entity in <get all entities>) {
    if (filters(entity)) {
        list.Add(entity)
    }
}
return list;

,我想要解释它。

不,你不能解释谓词里面的内容,这是一个委托。委托方是黑盒。委托的调用者不需要知道委托实际做了什么。如果你真的想知道它是做什么的,可以使用表达式树,但我认为在这种情况下应该使用Predicate

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42733863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档