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

  1. #1
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    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 expérimenté
    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
    Points : 1 696
    Points
    1 696
    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) ?

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    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.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  4. #4
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    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