Modifier la liste en C# : foreach
boucle ou for
boucle ?
Dans les versions antérieures à C# 4.0, modifier une liste lors d'une boucle foreach
provoquerait une exception. Cependant, .NET 4.0 a introduit la prise en charge de cette fonctionnalité. Néanmoins, la meilleure approche consiste à utiliser une boucle for
traditionnelle.
Énumération immuable
L'instructionforeach
utilise des collections immuables, comme l'indique MSDN : "L'instruction foreach
... ne peut pas être utilisée pour ajouter ou supprimer des éléments de la collection source pour éviter des effets secondaires imprévisibles
for
Solution de boucle
Pour modifier une liste en l'itérant, il est recommandé de passer en boucle for
:
<code class="language-csharp">for (var i = 0; i < list.Count; i++) { // 修改 list[i] }</code>
Cette approche permet des itérations et des modifications sans rencontrer de bugs ou de comportements inattendus.
Exception de collecte simultanée
Veuillez noter que le blog référencé dans la question mentionne que cette exception ne s'applique pas aux collections simultanées introduites dans .NET 4.0. Cependant, il est toujours recommandé d'utiliser une boucle for
pour la modification de liste car c'est la technique recommandée et la plus fiable.
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!