有没有办法用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
。