Avatar ·

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