Найдено несколько решений по: foreach с индексом
Мне понравилось решение JarredPar:
foreach ( var it in list.Select((x,i) => new { Value = x, Index=i }) )
{
// do stuff (with it.Index)
}
и решение Дэна Финча:
list.Each( ( str, index ) =>
{
// do stuff
} );
public static void Each<T>( this IEnumerable<T> ie, Action<T, int> action )
{
var i = 0;
foreach ( var e in ie ) action( e, i++ );
}
Я выбрал метод Дэна Финча для лучшей читаемости кода.
(И мне не нужно было использовать continue
или break
)