Maison > développement back-end > C++ > Comment puis-je accéder à l'indice d'itération dans une boucle C # foreach?

Comment puis-je accéder à l'indice d'itération dans une boucle C # foreach?

Mary-Kate Olsen
Libérer: 2025-01-27 17:56:10
original
260 Les gens l'ont consulté

How Can I Access the Iteration Index in a C# Foreach Loop?

Accès à l'index d'itération dans C # ForEach Loops

C # foreach Les boucles offrent un moyen concis de parcourir les collections. Cependant, l'accès directement à l'indice d'itération n'est pas intrinsèquement pris en charge. Voici plusieurs méthodes pour y parvenir:

1. Compteur manuel:

L'approche la plus simple implique un compteur incrémenté manuellement:

<code class="language-csharp">int index = 0;
foreach (var item in myCollection)
{
    // Use 'item' and 'index'
    index++;
}</code>
Copier après la connexion

2. Linq's Select avec index:

La méthode Select de Linq fournit une surcharge qui inclut l'index:

<code class="language-csharp">foreach (var item in myCollection.Select((value, index) => new { Value = value, Index = index }))
{
    var value = item.Value;
    var index = item.Index;
    // Use 'value' and 'index'
}</code>
Copier après la connexion

Cela crée un type anonyme contenant à la fois la valeur et son index.

3. Valuetuple (C # 7.0 et plus tard):

Pour améliorer les performances et éviter les allocations de tas (en particulier avec les grandes collections), utilisez ValueTuple:

<code class="language-csharp">foreach (var (value, index) in myCollection.Select((value, index) => (value, index)))
{
    // Access 'value' and 'index' directly
}</code>
Copier après la connexion

Cela exploite la déconstruction des tuples pour la syntaxe plus propre.

4. Pour la boucle (alternative):

Pour les situations nécessitant un accès à l'index, une boucle standard for offre une solution plus directe:

<code class="language-csharp">for (int index = 0; index < myCollection.Count; index++)
{
    var item = myCollection[index];
    // Use 'item' and 'index'
}</code>
Copier après la connexion

Cette approche est généralement préférée lorsque l'index est crucial pour la logique de la boucle. Choisissez la méthode qui convient le mieux à vos besoins de style de codage et de performance. Pour les cas simples, un compteur manuel suffit. Pour des collections plus grandes ou des scénarios plus complexes, Linq avec ValueTuple offre un équilibre de lisibilité et d'efficacité. La boucle for reste une option viable lorsque la manipulation de l'index est au cœur de l'opération de la boucle.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal