Maison > développement back-end > C++ > Comment modifier en toute sécurité les listes dans une boucle «ForEach» en C #?

Comment modifier en toute sécurité les listes dans une boucle «ForEach» en C #?

Linda Hamilton
Libérer: 2025-01-27 13:36:10
original
933 Les gens l'ont consulté

How to Safely Modify Lists Inside a `foreach` Loop in C#?

Modification de listes dans des foreach boucles en C# : bonnes pratiques

Modifier une liste directement dans une boucle foreach en C# peut entraîner un comportement inattendu. Bien que C#/.NET 4.0 et les versions ultérieures autorisent certaines modifications dans des circonstances spécifiques (comme l'a noté Paul Jackson), cela n'est généralement pas recommandé. L'immuabilité inhérente de la collection utilisée dans une boucle foreach est conçue pour éviter les effets secondaires imprévisibles, comme documenté par MSDN.

Les méthodes plus anciennes, telles que l'utilisation d'un IList comme tampon temporaire, sont moins efficaces et moins élégantes.

Pourquoi éviter de modifier dans foreach ?

Le fonctionnement interne de la boucle foreach crée une copie (ou un itérateur) de la collection. La modification de la collection d'origine lors de l'itération peut amener la boucle à sauter des éléments ou à lever des exceptions.

La méthode préférée : utiliser des for boucles

Pour les scénarios nécessitant une modification de la collection source, une boucle for offre un meilleur contrôle et une meilleure prévisibilité. Cette approche manipule directement les indices de la liste, évitant les problèmes associés à foreach.

Collections simultanées : une exception

Bien que les collections simultanées dans les versions C# plus récentes permettent des modifications dans les boucles foreach, il s'agit d'un cas spécialisé. Il est essentiel de comprendre que cette exception s'applique uniquement à ces types de collections spécifiques conçus pour un accès simultané.

En résumé : Bien que techniquement possible dans des situations limitées, la modification des listes dans les foreach boucles est généralement déconseillée. L'utilisation de boucles for pour les modifications de liste reste la meilleure pratique pour garantir la clarté et la prévisibilité du code et éviter les erreurs inattendues.

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