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

Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 18 mars 2010 à 18:18 - Dernière réponse : yohan49 382 Messages postés samedi 22 janvier 2005Date d'inscription 13 août 2011 Dernière intervention
- 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
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 19 mars 2010 à 09:51
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 117 internautes ce mois-ci

Commenter la réponse de krimog
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 19 mars 2010 à 11:25
0
Merci
Merci pour ta réponse, c'est nickel
Commenter la réponse de Jojo092
Jojo092 137 Messages postés samedi 24 septembre 2005Date d'inscription 12 avril 2013 Dernière intervention - 22 mars 2010 à 11:10
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
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 22 mars 2010 à 11:18
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
yohan49 382 Messages postés samedi 22 janvier 2005Date d'inscription 13 août 2011 Dernière intervention - 22 mars 2010 à 13:28
Commenter la réponse de yohan49
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 22 mars 2010 à 15:41
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
yohan49 382 Messages postés samedi 22 janvier 2005Date d'inscription 13 août 2011 Dernière intervention - 22 mars 2010 à 16:37
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
yohan49 382 Messages postés samedi 22 janvier 2005Date d'inscription 13 août 2011 Dernière intervention - 21 mars 2010 à 06:06
-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.