C#(泛型的泛型)?

标签 c# generics

有什么办法可以用 C# 来表达这个想法吗? (基本上是泛型的泛型)?

public static class ExtensionSpike
{
    public static IEnumerable<T> Where<TCollection<T>>(this TCollection<T> sourceCollection, Expression<Func<T, bool>> expr)
        where TCollection : class, IEnumerable<T>, INotifyCollectionChanged
    {
        throw new NotImplementedException();
    }
}

最佳答案

通用约束可能不是您想要的,但这基本上就是您要寻找的吗?这将 TCollection 限制为 IEnumerable<T> (虽然 IEnumerable 可以换成 List/Collection/Etc...)

public static IEnumerable<T> Where<T, TCollection>(this TCollection sourceCollection, Expression<Func<T, bool>> expr)
where TCollection : IEnumerable<T>, INotifyPropertyChanged
{
    throw new NotImplementedException();
}

更新:只是稍微更改了我的示例以更好地遵循该方法——我一直很困惑,没有意识到你想要一个 Where()方法,我认为这是你的通用约束 where .

关于C#(泛型的泛型)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2069043/

相关文章:

c# - ASP.NET 第一次使用 createuserwizard 组件

c# - 通过API下载soundcloud数据

c# - 引用所需的重载泛型方法

java - 在参数中使用泛型集合

swift - Swift 通用约束中的元组类型

c# - 玻璃 : Solution found, 上的渲染控件需要双缓冲/完善

c# - 如何选择异步委托(delegate)的返回类型

c# - 为什么 C# 控制台项目忽略 Directory.build.props

java - 当包含泛型类型时,如何通过 Hazelcast DataSerializable 序列化 Java 类?

java - Java中如何将Generic Arraylist转换为Array?