xxxxxxxxxx
int i = -1;
foreach (Widget w in widgets)
{
i++;
// do something
}
xxxxxxxxxx
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");
}
xxxxxxxxxx
using System.Collections.Generic;
public static IEnumerable<(T item, int index)> WithIndex<T>(this IEnumerable<T> self) => self.Select((item, index) => (item, index));
foreach (var (item, index) in collection.WithIndex())
{
Debug.WriteLine($"{index}: {item}");
}
xxxxxxxxxx
string[] myArray = { "apple", "banana", "orange" };
for (int i = 0; i < myArray.Length; i++)
{
Console.WriteLine($"Index: {i} -- Value: {myArray[i]}");
}