Logo Passei Direto
Buscar
Considere o código abaixo em C#: int[] valores = { 10, 20, 30 }; int fator = 2; var resultado = valores.Select(v => v * fator); fator = 5; foreach (var item in resultado) { Console.WriteLine(item); } Com base no conceito de execução tardia em LINQ, selecione a alternativa que representa corretamente a saída exibida no console. A 50, 100, 150 B 10, 20, 30 C 20, 40, 60 D 15, 30, 45
User badge image
Douglas Junior

ontem

Respostas

User badge image

Ed Verified user icon

ontem

Para entender a saída do código em C#, precisamos analisar o conceito de execução tardia (ou "lazy evaluation") do LINQ. No código fornecido, a variável `resultado` é definida usando `valores.Select(v => v * fator)`, mas a execução dessa operação não acontece imediatamente. Em vez disso, a execução ocorre quando você realmente itera sobre `resultado` no `foreach`. Aqui está o que acontece passo a passo: 1. `int[] valores = { 10, 20, 30 };` - Um array de inteiros é criado. 2. `int fator = 2;` - A variável `fator` é inicializada com 2. 3. `var resultado = valores.Select(v => v * fator);` - Aqui, `resultado` é uma sequência que ainda não foi avaliada. O cálculo será feito quando `resultado` for iterado. 4. `fator = 5;` - O valor de `fator` é alterado para 5 antes da iteração. 5. `foreach (var item in resultado) { Console.WriteLine(item); }` - Neste ponto, a sequência `resultado` é avaliada. Como `fator` agora é 5, cada valor em `valores` será multiplicado por 5. Portanto, a saída será: - 10 * 5 = 50 - 20 * 5 = 100 - 30 * 5 = 150 Assim, a saída exibida no console será: A) 50, 100, 150.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina