index in foreach c#

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");
}
Source

Also in C#: