Como obter o índice da iteração atual de um loop foreach em C#?
Olá a todos! Estou começando a aprender C# e me deparei com o seguinte problema: preciso não apenas percorrer os elementos de uma coleção, mas também saber o número de ordem de cada elemento durante a iteração. Por exemplo, tenho uma lista de strings:
```csharp
List fruits = new List { "maçã", "banana", "laranja", "pera" };
```
Quero exibir cada fruta com seu índice, assim:
```
0: maçã
1: banana
2: laranja
3: pera
```
Obviamente, o loop `for` é perfeito para essa tarefa:
```csharp
for (int i = 0; i < fruits.Count; i++)
{
Console.WriteLine($"{i}: {fruits[i]}");
}
```
Mas estou interessado especificamente no `foreach`. Ouvi dizer que `foreach` é mais simples e seguro para leitura, mas não possui uma variável de contador embutida. Tentei fazer assim:
```csharp
int index = 0;
foreach (var fruit in fruits)
{
Console.WriteLine($"{index}: {fruit}");
index++;
}
```
Isso funciona, mas parece uma gambiarra. Talvez exista uma maneira mais elegante? Por exemplo, algum