IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Eléments communs liste


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Par défaut Eléments communs liste
    Bonjour,

    J'ai une liste de nom de fichiers que j'aimerai traité d'une certaine façons .

    J'aimerai que pour chaque fichier, il soit tronqué ( exemple : je veux plus que les 15 premiers caractère ) et ensuite que ce nouveau nom soit comparé à tous les autre nouveaux noms de la liste.
    Tous ça afin que je puisse savoir pour chaque élément combien de fois est-il présent dans la liste.

    Voici un exemple d'une liste :
    ListetestCompar_Essaie_3
    ListetestCompar_Essaie_27
    ListeNa20Compar_Essaie_8
    ListetestCompar_Essaie_1
    ListeNa20Compar_Essaie_12
    ListetestCompar_Essaie_15

    Pour passer à la suivante je sais faire, avec le substring

    Donne la nouvelle :
    ListetestCompar
    ListetestCompar
    ListeNa20Compar
    ListetestCompar
    ListeNa20Compar
    ListetestCompar

    Résultat :

    ListetestCompar présent 4 fois
    ListeNa20Compar présent 2 fois

    Je n'ai aucune idée de comment faire
    Des idées ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 420
    Par défaut
    Bonjour,
    Tu peux regarder du côté de Linq, qui permet de faire des "pseudo" requête SQL sur des listes.
    Tu as un exemple qui correspond à ce que tu cherches à faire.

    Tatayo.

  3. #3
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Linq + GroupBy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    IList<string> testValues = new List<string> { "ListetestCompar", "ListetestCompar", "ListeNa20Compar", "ListetestCompar", "ListeNa20Compar", "ListetestCompar" };
    var groups = testValues.GroupBy(value => value);
    // Dans le regroupement, Key contient le nom du groupe, Count() renvoie le nombre d'occurences
    foreach (var group in groups) {
        Console.WriteLine($"Key: {group.Key}, occurences: {group.Count()}");
    }
    [EDIT] grillé par Tatayo

  4. #4
    Membre confirmé
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Par défaut
    Impeccable, Merci à vous deux;

    Je pose le code adapté à l’énoncé si jamais.

    Encore merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    DirectoryInfo dir = new DirectoryInfo("F:/SHARED/FLUO");
                var testValues = new List<string>();
     
                FileInfo[] fichiers = dir.GetFiles();
     
                foreach (FileInfo fichier in fichiers)
                {
                    testValues.Add(fichier.Name.Substring(0,15));
                }
     
                var groups = testValues.GroupBy(value => value);
     
                // Dans le regroupement, Key contient le nom du groupe, Count() renvoie le nombre d'occurences
                foreach (var group in groups)
                {
                    Console.WriteLine($"Key: {group.Key}, occurences: {group.Count()}");
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. créer une barre de défilement commune à 2 listes
    Par joooooo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/05/2007, 19h20
  2. [STL] Extraire les éléments communs entre 2 Listes
    Par mambo dans le forum SL & STL
    Réponses: 15
    Dernier message: 26/04/2007, 11h12
  3. Réponses: 11
    Dernier message: 20/04/2007, 23h08
  4. récupérer la partie commune d'une liste de String
    Par Kanter dans le forum Delphi
    Réponses: 11
    Dernier message: 18/04/2007, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo