LINQ: A partir de uma lista do tipo T, recuperar apenas objetos de uma determinada subclasse S

Dada uma hierarquia de herança simples: Pessoa -> Aluno, Professor, Funcionário

Digamos que eu tenha uma lista de pessoas, L. Nessa lista estão alguns alunos, professores e funcionários.

Usando LINQ e C #, existe uma maneira que eu poderia escrever um método que poderia recuperar apenas um tipo específico de pessoa?

Eu sei que posso fazer algo como:

var peopleIWant = L.OfType< Teacher >();

Mas eu quero ser capaz de fazer algo mais dinâmico. Eu gostaria de escrever um método que irá recuperar os resultados para qualquer tipo de pessoa que eu poderia pensar, sem ter que escrever um método para cada tipo possível.

questionAnswers(4)

yourAnswerToTheQuestion