Accueil > Forum > > > > Suppression de données utiliser par une boucle, dans une boucle
Suppression de données utiliser par une boucle, dans une boucle
jeudi 23 avril 2009 à 11:34:07 |
Suppression de données utiliser par une boucle, dans une boucle

simlaboum
|
Bon, en gros: pour chaque élément d'un liste, si l'élément prend une certaine valeur, je le supprime. il semblerait que ce ne soit pas prévu et autoriser par Maitre C#. En soit, ça ce tiens, mais il n'y aurait pas un truc du genre: "removeLater()'? Merci et bien le bonjour chez vous. Tagadatsointsoin!!!
|
|
jeudi 23 avril 2009 à 12:48:05 |
Re : Suppression de données utiliser par une boucle, dans une boucle

Bidou
|
Réponse acceptée !
Avec les méthodes remove et removeAt des listes, non? Merci de préciser la question voire éven. d'ajouter du code.
- Blog- - Site Perso-
|
|
jeudi 23 avril 2009 à 13:57:45 |
Re : Suppression de données utiliser par une boucle, dans une boucle

simlaboum
|
Voila le code: List<string> toto = new List<string>(); toto.Add("a"); toto.Add("c"); toto.Add("d"); foreach (string lettre in toto) { if (lettre == "c") { toto.Remove(lettre); } } Désole, je ne trouve pas comment le mettre avec des belle couleur.
voila l'erreur: Collection was modified; enumeration operation may not execute.
a+
Tagadatsointsoin!!!
|
|
jeudi 23 avril 2009 à 14:13:54 |
Re : Suppression de données utiliser par une boucle, dans une boucle

ed73
|
Réponse acceptée !
Bonjour,
En effet, il n'est pas possible de supprimer ou d'ajouter un élément à une collection pendant qu'on est en train d'itérer dessus.
Une solution pourrait d'être de renseigner une List<int> des index des éléments à suprimer puis d'itérer sur cette liste et d'utiliser RemoveAt sur ta List<string>
ed73
|
|
jeudi 23 avril 2009 à 14:23:12 |
Re : Suppression de données utiliser par une boucle, dans une boucle

leprov
|
Réponse acceptée !
Le plus simple et efficace est simplement de boucler avec un for inversé. Le foreach enmpeche la suppression. Le for n'empeche pas la suppression mais engendre des bugs (evidemment, on loupe des valeurs)
for (int i = myList.Count - 1; i >= 0; --i) { myList.RemoveAt(i); }
|
|
jeudi 23 avril 2009 à 14:24:19 |
Re : Suppression de données utiliser par une boucle, dans une boucle

simlaboum
|
Merci bien, finalement, je vais adopté une tournure d'esprit plus positive: créer une liste des éléments que je veux garder... a+
Tagadatsointsoin!!!
|
|
jeudi 23 avril 2009 à 14:28:39 |
Re : Suppression de données utiliser par une boucle, dans une boucle

Bidou
|
ed73> Bien sûr que c'est faisable, et encore heureux! Ce qui n'est pas possible, c'est de le faire lorsqu'on travaille avec un Enumerator... La boucle for convient tout à fait, avec les méthodes remove ou removeAt comment indiqué dans le premier poste et dans celui de leprov...
- Blog- - Site Perso-
|
|
jeudi 23 avril 2009 à 15:31:33 |
Re : Suppression de données utiliser par une boucle, dans une boucle

ed73
|
Je me suis exprimé un peu vite, il est bien évident que je voulais parler de foreach.
Par contre il y a des cas (rares) où l'utilisation de for() n'est pas possible. Actuellement je travaille avec Microsoft.Office.Interop.MSProject (automation Microsoft Project) et il faut impérativment parcourir les diverses collections avec un énumérateur car il y a souvent des éléments null dans les collections qui ne sont pas comptabilisés par le Count et ce de manière totalement aléatoire, le seul moyen de ne rien rater est d'utiliser foreach(), mais bon c'est peut-être un bug de Project.
ed73
|
|
jeudi 23 avril 2009 à 15:56:35 |
Re : Suppression de données utiliser par une boucle, dans une boucle
|
jeudi 23 avril 2009 à 16:54:43 |
Re : Suppression de données utiliser par une boucle, dans une boucle

ed73
|
Voici comment je m'en suis aperçu.
Pour itérer sur les ressources affectées à une tâche on avait une boucle
for(int i = 1;i<=Task.Resources.Count;i++) if(Task.Resources[i]!=null) DoSomething(Task.Resources[i]));
Il manquait systématiquement plusieures ressources, après plusieurs essais j'ai finalement fait un truc stupide pour voir
for(int i = 1;i<=Task.Resources.Count + 10;i++) if(Task.Resources[i]!=null) DoSomething(Task.Resources[i]));
Eh bien ça a marché jusqu'à Task.Resources.Count + 3 et j'ai récupéré toutes les ressources.
Finalement la solution était
foreach(Resource res in Task.Resources) DoSomething(res);
L'itération se fait correctement et je récupère toutes les ressources. Je pense que MSProject ne gère pas les collections comme il faudrait et ne comptabilise pas les éléments null dans le Count.
|
|
Cette discussion est classée dans : boucle, élément, données, utiliser, suppression
Répondre à ce message
Sujets en rapport avec ce message
Quelle technologie utiliser ? [ par NHV ]
Bonjour,j'aimerais développer une simulation, ce qui veut dire qu'il y a des changements de données d'affichage dans l'interface à chaque seconde. Je
ajout modif et suppression de données [ par flab ]
bonjour à tous, je travaille avec une bdd sql sever, j'arrive bien à afficher mes données mais pas à les manipuler (ajout, suppression, modification)
suppression des élément recherchés d'une listbox [ par BOUDDINE ]
BOnjour tout le mondeSVP si quelqu'un peut m'aiderje vous expliquej'ai une listBOx remplie par des donnéespar exemple tazertya
Comment Interdire la suppression d'une base mdb ?? [ par realabdel ]
Bonjour tous le monde, j'ai une base de données .mdb partagé dans le réseau, et protégé par un mot de passe. le problème est que n'importe quel utilsa
FileSystemWatcher et suppression de dossier [ par Ziman ]
Bonjour,je fais un petit programme de surveillance de fichier/dossier et j'ai un petit soucis. J'aimerai réagir à la suppression d'un fichier ou dossi
Choix de la base de données [ par zabrat ]
Bonjour a tous, je dois faire un projet en c# pour la gestion des resources d'une entreprise. Tous le projet est basé sur le choix de la base de donné
récolté des données à partir d'un script pour les utiliser dans un programme [ par draonix ]
Bonjour à tous ,Et oui je ne peux m'empêcher de vous enquiquiner avec mes questions mais j'en ai tellement appris grace à vous que je sollicite une fo
Méthode simple pour les débutants pour utiliser les bases de données sqlcompaq 3.5 [ par medali1986 ]
Aidez moi s'il vous plait donnez une méthode simple pour se connecter à une base de données sql compact 3.5[^^sad1]
import des données de excel à scilab [ par brhemzeineb ]
Bonjour, je suis débutante avec scilab et je suis bloquée sur un truc, en fait je veux importer des données de excel à scilab et les utiliser j'ai réu
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|