Comparaison de 2 listes spécifiques [Résolu]

Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Dernière intervention
12 avril 2013
- - Dernière réponse : yohan49
Messages postés
382
Date d'inscription
samedi 22 janvier 2005
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.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
1
Merci
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é. -

Merci krimog 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de krimog
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Dernière intervention
12 avril 2013
0
Merci
Merci pour ta réponse, c'est nickel
Commenter la réponse de Jojo092
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Dernière intervention
12 avril 2013
0
Merci
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.
Commenter la réponse de Jojo092
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
0
Merci
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é. -
Commenter la réponse de krimog
Messages postés
382
Date d'inscription
samedi 22 janvier 2005
Dernière intervention
13 août 2011
Commenter la réponse de yohan49
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
0
Merci
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é. -
Commenter la réponse de krimog
Messages postés
382
Date d'inscription
samedi 22 janvier 2005
Dernière intervention
13 août 2011
0
Merci
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
Commenter la réponse de yohan49
Messages postés
382
Date d'inscription
samedi 22 janvier 2005
Dernière intervention
13 août 2011
-2
Merci
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);
              });
        });
Commenter la réponse de yohan49

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.