none
Intersect desconsiderando os elementos nulos. (7 Listas) RRS feed

  • Pergunta

  • Sou novo no Linq, mas confesso que é muito bom trabalhar com ele, por isto estou querendo me aprofundar. Pois bem tenho um problema que é o seguinte. Tenho uma lista (GenericList) com os dados que exibo na tela, exemplo 100 linhas. E tenho vários combos na tela que o usuário pode utilizar para filtrar esta lista, o grande problema é que não estou sabendo tratar quando um dos elementos selecionado não trouxer nenhum resultado, Exemplo:

    1 - ListaGeral = 100 linhas
    2 - Usuário escolhe um combo de sexo = m ListaAtual = 30
    3 - Usuário escolhe outro combo de naturalidade = DF, ListaAtual = 0, se eu utilizar o intersect como não existe nenhuma linha que atenda o critério de naturalidade = DF eu perco o filtro de sexo, é possível fazer o interset e o Linq desconsiderar as listasNulas/Zeradas? 

     

    Só para explicar melhor eu no carregamento de cada combo faço um filtro utilizando apenas o argumento do combo selecionado para filtrar a ListaGeral, e depois quero fazer a interseção entre as listas resultantes.


    Guilherme Carvalho
    sábado, 6 de agosto de 2011 12:52

Respostas

  • Olá Guilherme,

    Será que vc não consegue substituir o intersect pelo comando where?

    Pelo oq li, me parece que vc está filtrando uma lista já existente através de parâmetros, acredito que o Where seja o melhor para fazer o mesmo, além de ser mais facil de definir a lógica entre os filtros...

    Segue um exemplo:

    public IEnumerable<Cliente> ExecutarConsulta(string sexo, string naturalidade)
    {
      return this._source.Where(c => c.Sexo == sexo &&
                      c.Naturalidade == naturalidade);
    }
    

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    sábado, 6 de agosto de 2011 14:20
    Moderador