#1,119 – Scope of Iteration Variable Is Limited to Body of foreach
June 17, 2014 1 Comment
The iteration variable that is set to a new element during each pass of a foreach statement only has scope within the body of the foreach loop. It may not be used or referenced outside of the loop.
List<Dog> myDogs = new List<Dog> { new Dog {Name = "Kirby", Age = 15}, new Dog {Name = "Ruby", Age = 2}, new Dog {Name = "Jack", Age = 17} }; foreach (Dog d in myDogs) { Console.WriteLine(d); d.Age++; } // Compile Error: The name 'd' does not exist in the current context string someDog = d.Name;