none
percorrer uma expressão lambda find com toList RRS feed

  • Pergunta

  • Bom dia! A seguinte expressão lambda: 

     var inscID = insAtleBo.Find(codRs => codRs.Insc_Atle_PK_Inscricao == idInscricao);

    Retorna em alguns casos mais de um valor. Como eu faço para percorrer cada um desses elementos?

    Obrigada!

    sexta-feira, 20 de julho de 2012 12:07

Todas as Respostas

  • Bom dia! A seguinte expressão lambda: 

     var inscID = insAtleBo.Find(codRs => codRs.Insc_Atle_PK_Inscricao == idInscricao);

    Retorna em alguns casos mais de um valor. Como eu faço para percorrer cada um desses elementos?

    Obrigada!

    Parece que dá para usar o ToList, assim: 
    var inscID = insAtleBo.Find(codRs => codRs.Insc_Atle_PK_Inscricao == idInscricao).ToList();
    Mas como ficaria o for ??? 
    sexta-feira, 20 de julho de 2012 12:10
  • Pessoal, consegui fazer assim: 

                    //TRAZ O VALOR DA INSCRICAO SELECIONADO PELO USUARIO
                    var inscID = insAtleBo.Find(codRs => codRs.Insc_Atle_PK_Inscricao == idInscricao).ToArray();
    
                    //PERCORRE TODOS OS ITENS QUE ELE ENCONTRAR COM AQUELE VALOR.
                    for (int i = 0; i < inscID.Length; i++)
                    {
                        var idAtleta = inscID[i].Insc_Atle_PK_Atleta;
    
                        AtletaBo atleBO = new AtletaBo();
                        var selectAtletasInscricao = atleBO.Find(codRs => codRs.Atle_Codigo == idAtleta).ToArray();
    
                        //FOR PARA PODER TRAZER CADA UM DOS VALORES SEPARADAMENTE E INSERIR NO <SELECT> (OU DROPDOWLIST)
                        for (int j = 0; j < selectAtletasInscricao.Length; j++)
                        {
                            selectAtleta.DataTextField = selectAtletasInscricao[j].Atle_Nome;
                            selectAtleta.DataValueField = Convert.ToString(selectAtletasInscricao[j].Atle_Codigo);
                            selectAtleta.DataSource = selectAtletasInscricao; // DÁ EXCEPTION NESSA LINHA
                            selectAtleta.DataBind(); // E NESSA TAMBÉM
    
                        }
    
                    }

    exception:

    DataBinding: 'SoccerScan.Data.Tab_Atleta' does not contain a property with the name 'teste'.


    sexta-feira, 20 de julho de 2012 14:25
  • Olá tente assim:

    List<insAtleBo> Lista = new List<insAtleBo>();

                    insAtleBo.FindAll(q => q.inscricao == 1).ForEach(q =>
                      {
                          q.Nome = "Atleta A";

         q.Codigo=1;

                          Lista.Add(q);
                      });

                    selectAtleta.DataSource = Lista; 
                    selectAtleta.DataBind();

    sexta-feira, 20 de julho de 2012 17:37
  • Se você quer percorrer a lista de valores retornados, basta usar um foreach...

    var lista = obj.Find(...);
    
    foreach (elemento in lista)
    {
        // ...
    }

    Abraços,
    Caio Proiete

     


    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://caioproiete.net
    domingo, 29 de julho de 2012 11:40
    Moderador