foreach
listes à 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 ?
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!