Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6837483
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T23:28:58+00:00 2026-05-26T23:28:58+00:00

I stumbled across this article and found it very interesting, so I ran some

  • 0

I stumbled across this article and found it very interesting, so I ran some tests on my own:

Test One:

List<Action> actions = new List<Action>();

for (int i = 0; i < 5; ++i)
    actions.Add(() => Console.WriteLine(i));

foreach (Action action in actions)
    action();

Outputs:

5
5
5
5
5

Test Two:

List<Action> actions = new List<Action>();

for (int i = 0; i < 5; ++i)
{
    int j = i;
    actions.Add(() => Console.WriteLine(j));
}

foreach (Action action in actions)
    action();

Outputs:

0
1
2
3
4

According to the article, in Test One all of the lambdas contain a reference to i which causes them to all output 5. Does that mean I get the expected results in Test Two because a new int is created for each lambda expression?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T23:28:58+00:00Added an answer on May 26, 2026 at 11:28 pm

    This is because of variable capturing in C# that can be a little tricky

    In a nutshell, Each loop of the for loop is referring to the same variable i so the compiler uses the same lambda expression for all loops.

    If it is any consolation, This oddity is worse in javascript as javascript only has function scopes for variables so even your second solution won’t do what you expect it to.

    This is also a very good explanation

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I just stumbled across this bug in some legacy code: class MyAPIHandler { private:
This is a problem one of our developers brought to me. He stumbled across
I've just stumbled across this fascinating article on the BBC website regarding producing music
I stumbled across this code. std::ostringstream str; /// (some usage) assert( ! str );
I stumbled across this article which was talking about AJAX and jQuery and I
I was looking through some pages when I stumbled across this open source JavaScript
So, I just stumbled across this one in another question : Parent constructors are
While investigating some localization options, I stumbled across this as a save option in
I stumbled across this before and I know it is a common problem. One
I'm refactoring some code that a friend wrote and recently stumbled across this function:

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.