IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] ArrayList, foreach et suppression


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut [C#] ArrayList, foreach et suppression
    Bonjour,


    Je cherches à parcourir une ArrayList et supprimer certains éléments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    			foreach (Point p in ATraiter)
    			{
    				Console.WriteLine(p.row + "," + p.col);
    				foreach (Point p1 in Traiter)
    				{
    					if (
    							(p.row > 0 && p1.row == p.row-1 && p1.col == p.col) || 
    						  	(p.col > 0 && p1.col == p.col-1 && p1.row == p.row) ||
    						  	(p1.col == p.col+1 && p1.row == p.row)	
    						)
    					{
    						Console.WriteLine("supprime " + p.row + "," + p.col);
    						ATraiter.Remove(p);
    						Traiter.Add(p);
    					}
    				}
    			}
    Malheureusement, je me prends cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Unhandled Exception: System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
       at System.Collections.ArrayListEnumeratorSimple.MoveNext()
       at Carte.Connexe() in c:\Temp\C#\Lac.cs:line 79
       at Client.Main() in c:\Temp\C#\Lac.cs:line 106
    Comment faire cette suppression proprement ?


    Merci par avance pour votre aide.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  2. #2
    Membre Expert
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Par défaut
    et si tu remplace ton foreach par un while tu as tjr cette erreur (le foreach encapsule un enumerateur je crois, le probleme vient peut etre de la) ?

    @+

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    foreach == pas touche à la collection.

    tu peux utiliser for, mais boucle du dernier élément vers le premier, pour éviter les embrouilles d'index après suppression.

  4. #4
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Effectivement, ca marche mieux avec un while ou un for, mais j'y perds bcp en lisibilité.


    Merci en tout cas !


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSTL] Lire une ArrayList dans une JSP en utilisant ForEach
    Par ScReeeN dans le forum Taglibs
    Réponses: 7
    Dernier message: 23/07/2010, 11h46
  2. Réponses: 7
    Dernier message: 01/07/2009, 12h38
  3. Problème foreach et arrayList()
    Par tom82 dans le forum C#
    Réponses: 0
    Dernier message: 07/04/2009, 17h06
  4. [JSTL] ArrayList en session et c:forEach
    Par totoche dans le forum Taglibs
    Réponses: 7
    Dernier message: 27/01/2009, 13h22
  5. suppression dernier caractère d'un ArrayList avec le clavier
    Par barbiche dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 26/03/2007, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo