Есть ли какая-нибудь редкая языковая конструкция, с которой я не сталкивался (например, немногие, которые я недавно выучил, некоторые по переполнению стека) в С#, чтобы получить значение, представляющее текущую итерацию цикла foreach?
Например, в настоящее время я делаю что-то вроде этого в зависимости от обстоятельств:
int i = 0;
foreach (Object o in collection)
{
// ...
i++;
}