Captured Variables : Understanding lambda expression and closures C#