/ / Herança de classe genérica e métodos de extensão LINQ - c #, genéricos, herança

Herança de Classe Genérica e Métodos de Extensão LINQ - c #, genéricos, herança

Digamos que eu tenha uma classe genérica parecida com esta

public class GenericCollection<T> : Collection<T>, IQueryable<T>
{
public string SomeCollectionProperty { get; set; }

...
// IQueryable implentations
}

agora eu tenho um filho classes da classe pai acima

public class SomeCollection : GenericCollection<SomeType>
{
// Some Additional Functionality here
}

Dentro da classe genérica, tenho o uso total dos métodos de extensão LINQ (ex: Onde, Primeiro, Selecione etc)

Assim que tento acessar os métodos de extensão LINQ na minha classe derivada, parece esquecer que é IQueryable ou IEnumerable

Eu esperaria que ele fizesse algo assim (dentro de SomeCollection)

public SomeType FindFirst(int SomeProperty)
{
return this.First(t => t.someproperty == SomeProperty);
}

mas ao invés disso eu acertei o. depois que esse estúdio visual não me fornece nenhum dos métodos de extensão

Estou destruindo meu cérebro tentando entender por que

Especialmente porque se na minha classe genérica eu apenas herdo de Collection<T> que implementa IEnumerable<T> que possui métodos de extensão LINQ associados aainda posso usar os métodos de extensão LINQ na minha classe genérica, mas assim que defino uma classe fortemente tipada com base na minha classe genérica, perco os métodos de extensão LINQ

Espero não confundir todo mundo porque sinto que estou confuso

Respostas:

2 para resposta № 1

Meu palpite é que não é possível encontrar os métodos de extensão porque você provavelmente precisa:

using System.Linq;

Isso deve estar na sua subclasse.