top of page
  • Foto do escritorFábio Henrique

C# - Filtrando Collections por tipo

Em programação não é incomum vermos listas com objetos de tipos distintos. Vamos considerar um cenário onde os usuários dos sistema são classificados como pessoa física e pessoa jurídica.


No código, temos uma classe Usuario e duas outras classes que herdam desta, PessoaFisica e PessoaJuridica.

public class Usuario
{
    public string Email { get; set; }
    public string Senha { get; set; }
}

 public class PessoaFisica : Usuario
 {
    public string Nome { get; set; }
    public string CPF { get; set; }
 }

 public class PessoaJuridica : Usuario
 {
    public string CNPJ { get; set; }
    public string RazaoSocial { get; set; }
    public string NomeFantasia { get; set; }
 }

No código abaixo preencho uma lista de usuários contendo pessoa física e pessoa jurídica

List<Usuario> usuarios = new List<Usuario>
{
       new PessoaFisica
       {
            Email = "pf@email.com",
            Senha = "123",
            Nome = "Pessoa fisica 1",
            CPF = "057.246.413-48"
       },
       new PessoaJuridica
       {
            Email = "pj@email.com",
            Senha = "123",
            CNPJ="68.335.687/0001-50",
            RazaoSocial = "Horda TI",
            NomeFantasia = "Ninja Dev Space"
        }
 };

Para filtrar os elementos de uma lista por tipo, basta usar o método OfType. Este método encontra-se no namespace System.Linq

var pf = usuarios.OfType<PessoaFisica>();
var pj = usuarios.OfType<PessoaJuridica>();

Após a execução do código acima a variável pf será um IEnumerable<PessoaFisica> e pj um IEnumerable<PessoaJuridica>


161 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page