Maison > développement back-end > C++ > Comment modifier en toute sécurité des listes dans des boucles « foreach » imbriquées en C# ?

Comment modifier en toute sécurité des listes dans des boucles « foreach » imbriquées en C# ?

Susan Sarandon
Libérer: 2025-01-27 13:21:10
original
795 Les gens l'ont consulté

How to Safely Modify Lists Inside Nested `foreach` Loops in C#?

Modifiez en toute sécurité les foreachlistes à l'intérieur des boucles en C#

En C#/.NET 4.0, les objets énumérables peuvent être modifiés lors d'une boucle foreach sans rencontrer d'exceptions. Le billet de blog de Paul Jackson en parle en détail.

Cependant, une question courante se pose : quelle est la meilleure façon de modifier une liste à l'intérieur d'une boucle foreach, en particulier dans un scénario foreach imbriqué ?

Traditionnellement, IList est souvent utilisé comme cache ou tampon pour accumuler les modifications jusqu'à la fin de la boucle foreach externe. Mais existe-t-il une meilleure alternative ?

Réponse

Il est important de noter que la collection itérée dans la boucle foreach est immuable de par sa conception. Comme indiqué dans la documentation MSDN, foreach est conçu pour accéder aux données et non pour modifier la collection source afin d'éviter des effets secondaires imprévisibles.

Si vous devez ajouter ou supprimer des éléments de la collection source, il est recommandé d'utiliser une boucle for à la place. Cela garantit des modifications prévisibles et contrôlées de la collection.

Le billet de blog lié par Poko suggère que cette limite peut ne pas s'appliquer aux collections simultanées introduites dans C#/.NET 4.0.

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!

source:php.cn
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