Por que estou obtendo resultados errados ao chamar Func <int>?
Tenho o seguinte trecho de código em C #:
var actions = new List<Func<int>>();
IEnumerable<int> values = new List<int> { 1, 2, 3 };
foreach (int value in values)
{
actions.Add(() => value * value);
}
foreach (var action in actions)
{
Console.WriteLine(action()); ;
}
Console.ReadLine();
Está funcionando bem, mas não estou obtendo o resultado esperado.
Resultado atua
9,9,9
Resultado esperad
1,4,9
Por que não estou obtendo o resultado esperado?