如何基于特定于具体类的谓词从接口集合中检索对象?

卡罗尔·斯克罗博特

我有一个对象集合作为我的类中的一个属性实现IFoo. 我想添加一种方法,用于按类型和谓词(特定于具体实现)从集合中检索项目。我遇到的问题是,我无法从接口定义的集合向下转换到我的具体类(无法从使用中推断出类型),如下所示:

public HashSet<IFoo> Foos { get; } = new HashSet<IFoo>();

public T GetFoo<T>(Func<T, bool> predicate) where T : class
    {
        if (Foos != null && predicate != null)
        {
            var foos = Foos.Where(f => f is T);
            return foo = foos.FirstOrDefault(predicate);
        }

        return null;
    }

我怎样才能做到这一点?

约翰·科纳

由于您HashSet的类型为IFoo,因此预计您的谓词也使用IFoo. 完成此操作的最简单方法是更改​​方法的签名:

    public IFoo GetFoo<T>(Func<IFoo, bool> predicate) where T: IFoo, class

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过匹配谓词集合中的属性来查找特定于 Android 的对象

如何基于Java中的接口对象获取实现类名称

如何从嵌套数据结构中检索基于谓词/条件的特定属性值的平面数组?

如何基于动态创建的谓词集合过滤对象列表

当具体类包含其他接口时,如何反序列化接口集合

检索MongoDB集合中对象数组中的特定元素

如何在模块中调用特定于类的方法

iOS解析如何从基于两个类的查询中检索对象?

如何在C#中使用特定于派生类的枚举实现接口?

如何使用react和javascript基于多个条件从对象数组中检索特定属性?

如何从Collections对象的集合中检索用户定义的对象

来自基于接口的类对象的类文字

如何从POJO类的Firestore集合中检索所有文档?

Java 谓词接口 - 该方法是如何工作的 - 虽然它没有在我的类中实现

如何使用Java从MongoDB集合中检索特定字段的值

如何从多个表中检索特定于用户会话ID的列?

如何在接口类中创建超类对象?

在讨论向量内部的对象时,如何访问特定于派生类的方法和属性?

如何基于TypeScript中的接口文件定义创建对象?

与具体类的接口

获取具体类实现的特定接口的类型列表

如何通过其实现的接口在具体类中强制执行类型构造函数?

Spring Data JPA(Hibernate):如何仅使用抽象超类中的字段来检索具体实体?

接口-注册类继承接口以基于该类创建对象

调用java集合使用对象的接口而不是对象的类?

如何为对象集合创建接口?

如何根据类型强加的谓词集合过滤对象?

单独的Java文件中的特定于常量的枚举类类

如何从ICollection检索类对象?