Przechwycona zmienna w pętli w C #

Spotkałem interesujący problem dotyczący C #. Mam kod jak poniżej. List<Func<int>> actions = new List<Func<int>>(); int variable = 0; while (variable < 5) { actions.Add(() => variable * 2); ++ variable; } foreach (var act in actions) {