假设我有一个看起来像这样的通用类
public class GenericCollection<T> : Collection<T>, IQueryable<T>
{
public string SomeCollectionProperty { get; set; }
...
// IQueryable implentations
}
现在我有上述父类的子类
public class SomeCollection : GenericCollection<SomeType>
{
// Some Additional Functionality here
}
在泛型类中,我充分利用了LINQ扩展方法(ex Where,First,Select等)
当我尝试在派生类中访问LINQ扩展方法时,似乎忘记了它是IQueryable或IEnumerable
我希望它能做到这样的事情(在SomeCollection里面)
public SomeType FindFirst(int SomeProperty)
{
return this.First(t => t.someproperty == SomeProperty);
}
但是当我击中时。在这个视觉工作室之后没有给我任何扩展方法
我正在试图理解为什么
特别是因为如果在我的Generic类中,我只是继承自实现Collection<T>
的{{1}},它具有与之关联的LINQ扩展方法,我仍然可以在我的泛型类中使用LINQ扩展方法但是只要我根据我的泛型类定义了一个强类型类我松散了LINQ扩展方法
我希望我不要只是混淆每个人,因为我确实觉得我很困惑
答案 0 :(得分:2)
我的猜测是找不到扩展方法,因为你可能需要:
using System.Linq;
这应该在您的子类中。