c# foreach get current index code example

Example 1: index in foreach c#

foreach (var item in Model.Select((value, i) => new { i, value }))
{
    var value = item.value;
    var index = item.i;
}

//or 

foreach ((MyType val, Int32 i) in Model.Select((value, i) => ( value, i )))
{
    Console.WriteLine("I am at index" + i + " and I can find the value on val");
}

Example 2: how to get foreach index c#

// foreach with a "manual" index
int index = 0;
foreach (var item in collection)
{
    DoSomething(item, index);
    index++;
}

// normal for loop
for (int index = 0; index < collection.Count; index++)
{
    var item = collection[index];
    DoSomething(item, index);
}

Example 3: foreach index start from at 1 in c#

int i = -1;
foreach (Widget w in widgets)
{
   i++;
   // do something
}