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

VB.NET Discussion :

trier les mots d'un tableau selon leur nombre d’occurrence


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur multimédia
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut trier les mots d'un tableau selon leur nombre d’occurrence
    bonsoir j'ai un projet nommé "l'indexation" à faire, je suis pas spécialiste en VB je suis débutante donc je trouve beaucoup de difficultés
    voila mon problème si j'ai un tableau { a,b,a,d,c,b,a,a,a} je dois avoir un tableau dans un listBox
    rang 1 : a : 5
    rang 2 : b : 2
    rang 3 : d,c : 1

    je sais pas comment faire j'ai essayer les méthodes classiques de tri de tableau et ça marche pas ?:
    aidez moi SV¨P et merci pour tt

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonjour,

    regardez du coté de Linq avec un group by et une agrégation.

  3. #3
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    De mémoire, un truc style (C#, mais traduisible en vb facilement):
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var resultat = maliste.GroupBy(d =>d).OrderByDescending(d => d.Count).ToList();
    resultat[0].Key va donner a
    resultat[0].Count va donner 5

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Par défaut
    Salut, moi j'utilise le code suivant pour compter l'occurrence des éléments d'une liste, pour ton tableau ça marchera :
    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
    Dim dic As New Dictionary(Of String, Integer)
            Dim i As Integer
            Dim Key As String
     
     
            If Liste1.Count > 0 Then
                For i = 0 To Liste1.Count - 1
                    Key = Liste1(i).ToString
                    If dic.ContainsKey(Key) Then
                        dic.Item(Key) = dic.Item(Key) + 1
     
     
                    Else : dic.Add(Liste1(i).ToString, 1)
                    End If
                Next
            End If

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim data = { "a", "b", "a", "d", "c", "b", "a", "a", "a" }
        Dim results = From item In data
                      Group By Item = item Into g = Group, Count()
                      Order By Count Descending
                      Select New With { Item, Count }
    (Perso je trouve pas cette syntaxe très claire, je préfère la version lambda

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim data = { "a", "b", "a", "d", "c", "b", "a", "a", "a" }
        Dim results = data.GroupBy(Function(item) item) _
                          .OrderByDescending(Function(g) g.Count()) _
                          .Select(Function(g) New With { .Item = g.Key, .Count = g.Count() })

Discussions similaires

  1. comment trier les instances d'une classe selon un attribut choisi
    Par rddev dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 29/05/2007, 00h01
  2. [Tableaux] Trier les valeurs d'un tableau
    Par altecad dans le forum Langage
    Réponses: 7
    Dernier message: 24/05/2007, 15h14
  3. [Tableaux] Trier les données d'un tableau HTML
    Par mouchkar dans le forum Langage
    Réponses: 9
    Dernier message: 05/01/2007, 20h29
  4. [DisplayTag] Problème pour trier les dates dans un tableau
    Par Pascale38 dans le forum Taglibs
    Réponses: 13
    Dernier message: 01/09/2006, 09h58
  5. Trier les données dans 1 tableau par ordre décroissant
    Par Blunet dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 23/11/2005, 09h56

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