Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Como usa o BuscarNumerosPares sem passar o parametro de numero informado no exemplo, dentro do FindAll da lista?

No exemplo abaixo usado na opção 07 Para saber mais: funções lambda Não entendi esse trecho: List numerosPares = numeros.FindAll(BuscarNumerosQueSaoPares);

Especificamente o uso do BuscarNumerosQueSaoPares sem passar nenhum parâmetro, pois no exemplo da tela, o método BuscarNumerosQueSaoPares espera como parametro um numero e nesse uso do findAll da lista não é passado nada, poderiam por favor tirar a duvida de como funciona.

List numeros = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

List numerosPares = numeros.FindAll(BuscarNumerosQueSaoPares);

bool BuscarNumerosQueSaoPares(int numero) { return numero % 2 == 0; }

foreach (int numero in numerosPares) { Console.WriteLine(numero); }

Obrigado!

2 respostas
solução!

Oi, Andreson

Não se está executando a função "BuscarNumerosQueSaoPares".

É como se o seu conteúdo fosse copiado para dentro FindAll

Exemplo:


List numerosPares = numeros.FindAll((int numero) => { return numero % 2 == 0; });

// ou apenas
List numerosPares = numeros.FindAll(n => n % 2 == 0);
        

Oi Luis,

então, quando se usa o lambda, eu até entendi que é isso que ocorre agora no exemplo que dei que é o mesmo da página do curso, é o ponto que não utiliza o Lambda, vou dar um exemplo do que eu acharia que aconteceria no print abaixo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeObs: ignore o código e comentários, estava usando para testes.

Veja que no numero 1, uso o BuscarNumerosPares e passo n como parametro, agora no numero 2 eu passo dentro de FindAll o BuscarNumerosPares sem parar senhum numero como parametro.

mas eu entendi o que você quis dizer, de uma forma anonima, é como se você 'dissesse', FindAll = encontre em toda lista, respeitando essa condição, melhor dizendo como você passou: List numerosPares = numeros.FindAll(n => n % 2 == 0);

Eu achava que seria como se eu acessasse o método e não passasse o conteudo dele para o FindAll

mas muito obrigado