Ed
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.