Comment obtenir l'index de l'itération actuelle d'une boucle foreach en C# ?
Bonjour à tous ! Je commence tout juste à apprendre C# et j'ai rencontré un problème : je dois non seulement parcourir les éléments d'une collection, mais aussi connaître le numéro d'ordre de chaque élément pendant l'itération. Par exemple, j'ai une liste de chaînes :
```csharp
List fruits = new List { "pomme", "banane", "orange", "poire" };
```
Je veux afficher chaque fruit avec son index, comme ceci :
```
0: pomme
1: banane
2: orange
3: poire
```
Évidemment, la boucle `for` convient parfaitement à cette tâche :
```csharp
for (int i = 0; i < fruits.Count; i++)
{
Console.WriteLine($"{i}: {fruits[i]}");
}
```
Mais ce qui m'intéresse, c'est spécifiquement `foreach`. J'ai entendu dire que `foreach` est plus simple et plus sûr pour la lecture, mais il n'a pas de variable de compteur intégrée. J'ai essayé de faire ceci :
```csharp
int index = 0;
foreach (var fruit in fruits)
{
Console.WriteLine($"{index}: {fruit}");
index++;
}
```
Cela fonctionne, mais ça semble bricolé. Existe-t-il une manière plus élégante ? Par exemple, une