I am trying to get my head around, what happens here ? What sort of code does the compiler produce?
public static void vc()
{
    var listActions = new List<Action>();
    foreach (int i in Enumerable.Range(1, 10))
    {
        listActions.Add(() => Console.WriteLine(i));
    }
    foreach (Action action in listActions)
    {
        action();
    }
}
static void Main(string[] args)
{ 
  vc();
}
output: 10 10 .. 10
According to this, a new instance of ActionHelper would be created for every iteration. So in that case, I would assume it should print 1..10. Can someone give me some pseudo code of what the compiler is doing here ?
Thanks.
 
     
     
     
    