Comparaison de 2 listes spécifiques

Résolu
Jojo092
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
- 18 mars 2010 à 18:18
yohan49
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
- 22 mars 2010 à 16:37
Bonjour,

déjà, je ne sais pas si mon sujet est dans la bonne section, mais je ne savais pas trop ou poser ma question. Modérateurs, déplacez cette discussion dans la section appropriée s'il y a besoin, merci.

Donc je vous explique mon problème. J'ai une base de donnée dans laquelle je récupère dans une liste des noms de ficher image jpg (que j'appelerais liste1. Ensuite, j'ai une deuxième liste qui comprends des noms de fichier images présents physiquement dans un dossier bien spécifique (liste2).

Jusque là tout va bien. Maintenant, ce que je dois faire, c'est comparer si mes fichiers jpeg de ma liste2 existe dans ma liste1 pour savoir si je dois supprimer le fichier jpg de mon dossier.

Voilà, donc s'il y a une âme charitable pour m'apporter son aide...

Merci d'avance.

8 réponses

krimog
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
14 février 2015
51
19 mars 2010 à 09:51
Salut

foreach(string nomFichier2 in liste2)
{
    if(!liste1.Contains(nomFichier2)
    {
        File.Delete(nomFichier2);
    }
}


Attention cependant à la casse. En effet, "C:\\truc.jpg" est différent de "c:\\Truc.JPG". Tu devrais, par exemple, quand tu insères les valeurs dans la liste, utiliser valeur.ToUpper() pour tout mettre en majuscules.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
1
Jojo092
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

19 mars 2010 à 11:25
Merci pour ta réponse, c'est nickel
0
Jojo092
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013

22 mars 2010 à 11:10
Effectivement, après relecture du code par mon chef de projet, il m'a plutôt conseiller d'utiliser les delegate ce que j'ai fait.

Merci aussi pour ta réponse.
0
krimog
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
14 février 2015
51
22 mars 2010 à 11:18
Je ne vois tout simplement pas l'intérêt d'utiliser des delegates.
C'est un peu plus compliqué, pas plus rapide, et pas moins gourmand en mémoire...

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yohan49
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
7
22 mars 2010 à 13:28
0
krimog
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
14 février 2015
51
22 mars 2010 à 15:41
Ah, merci pour l'info. Je ne savais pas.

(Bon, toujours est-il que pour 10 millions d'itérations, on peut bien 6 centièmes de seconde de plus ^^)

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
yohan49
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
7
22 mars 2010 à 16:37
sur une List , oui c vrai c tres peu , sur des gros traitement , la deference peu etre enorme :)

et

liste1.ForEach est de l'object

foreach(string nomFichier2 in liste2) est du procedurale
0
yohan49
Messages postés
380
Date d'inscription
samedi 22 janvier 2005
Statut
Membre
Dernière intervention
13 août 2011
7
21 mars 2010 à 06:06
tu peux aussi utliser les delegates

liste1.ForEach(
        delegate(String name)
        {
          liste2.ForEach(
              delegate(String name2)
              {
                     if (String.Compare(name, name2) == 0)
                          File.Delete(name2);
              });
        });
-2