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
Gestion de données, utiliser une base de données ou créer sa propre class ? [ par scottmat ]
Bonjours à tous , J'ai une question toute bête. Lorsqu'on dév
suppression d'un ensemble de base de données [ par adsana ]
salutj'ai réalisé un simulateur du réseau et j'ai besoin de sauvegarder les simulations.Donc avant d'ouvrir une nouvelle simulation l'utilisateur sais
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|