Foreach Loop C# with Example



Foreach Loop C# with Example

foreach will iterate over any object of a class that implements IEnumerable (take note that IEnumerable inherits 
from it). Such objects include some built-in ones, but not limit to: List, T[] (arrays of any type), 
Dictionary, as well as interfaces like IQueryable and ICollection, etc. 
syntax 
foreach(ItemType itemVariable in enumerableObject) 
statement; 
remarks 
1. The type ItemType does not need to match the precise type of the items, it just needs to be assignable from 
the type of the items 
2. Instead of ItemType, alternatively var can be used which will infer the items type from the enumerableObject 
by inspecting the generic argument of the IEnumerable implementation 
3. The statement can be a block, a single statement or even an empty statement (;) 
4. If enumerableObject is not implementing IEnumerable, the code will not compile 
5. During each iteration the current item is cast to ItemType (even if this is not specified but compiler-inferred 
via var) and if the item cannot be cast an InvalidCastException will be thrown. 
Consider this example: 
var list = new List(); 
list.Add("Ion"); 
list.Add("Andrei"); 
foreach(var name in list) 
{ 
Console.WriteLine("Hello " + name); 
} 
is equivalent to: 
var list = new List(); 
list.Add("Ion"); 
list.Add("Andrei"); 
 

IEnumerator enumerator; 
try 
{ 
enumerator = list.GetEnumerator(); 
while(enumerator.MoveNext()) 
{ 
string name = (string)enumerator.Current; 
Console.WriteLine("Hello " + name); 
} 
} 
finally 
{ 
if (enumerator != null) 
enumerator.Dispose(); 
} 

0 Comment's

Comment Form

Submit Comment