Maison >développement back-end >C++ >Comment puis-je obtenir l'indice de l'itération actuelle dans une boucle C # foreach?
Utiliser l'index d'itération dans la boucle foreach
Obtenir l'index de l'itération actuelle dans une boucle foreach est une tâche de programmation courante. Bien que C# ne fournisse pas de solution intégrée, il possède une structure unique qui répond à ce besoin.
Solution : exploiter les objets sélectionnés et anonymes
Une solution consiste à profiter de la méthode Select de LINQ, qui fournit une surcharge qui vous permet de spécifier une fonction qui prend la valeur et l'index comme paramètres. En sélectionnant l'index dans cette fonction vous créez un objet anonyme contenant la valeur et l'index :
<code class="language-csharp">foreach (var item in Model.Select((value, i) => new { i, value })) { var value = item.value; var index = item.i; }</code>
Optimisation : utilisation de ValueTuple et déstructuration automatique
Si vous utilisez C# 7.0 ou version ultérieure, vous pouvez utiliser un ValueTuple au lieu d'un objet anonyme pour éviter l'allocation de tas :
<code class="language-csharp">foreach (var item in Model.Select((value, i) => (value, i))) { var value = item.value; var index = item.i; }</code>
De plus, la déstructuration automatique élimine le besoin d'un accès explicite aux propriétés :
<code class="language-csharp">foreach (var (value, i) in Model.Select((value, i) => (value, i))) { // 直接在此处访问 `value` 和 `i`。 }</code>
En combinant ces constructions, vous pouvez facilement récupérer l'index de l'itération en cours dans une boucle foreach C#, augmentant ainsi la précision et la flexibilité de votre code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!