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 :

Opération entre tableaux [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Opération entre tableaux
    Bonjour à tous,
    Je suis confronté au problème suivant :
    J'ai un Tableau_1 à une colonne d'environ 150000 lignes, ou chaque lignes contient un mot.
    J'ai un autre Tableau_2 à une colonne également, contenant environ 150 lignes, ou chaque lignes contient un mot. Ces mots sont très courant et chacun est présent plusieurs fois dans le Tableau_1.

    Je souhaiterai soustraire tous les mots contenus dans le Tableau_2 au Tableau_1 de manière à avoir un nouveau Tableau_3.

    J'espère être clair dans mon explication.

    Auriez vous une idée quand à la manière de procéder?
    Existe-t-il un outil ou une fonction prévu pour ce genre ce chose ou dois-je passer par une boucle?

    Merci d'avance!

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Si j'ai bien compris T3 = T1 - T2

    Si tu as au minimum le framework 4 tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           Dim T1 As New List(Of String) From {"x", "y", "z"}
            Dim T2 As New List(Of String) From {"y"}
            Dim T3 As New List(Of String)
     
            T3 = T1.Except(T2).ToList
     
            For Each item As String In T3
                Console.WriteLine(item) 'retourne x et z
            Next

  3. #3
    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
    Merci pour ta réponse,
    Oui c'est ça je veux faire T3= T1-T2

    Et je cherchais bien un outil du genre Except

    Par contre j'utilise des List (of Class) ou ma class est un objet défini comme un string

    comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Class Stopwords
        Public stopword As String
    End Class
    Et donc mes 2 list(of stopwords) sont celles qui seront utilisées pour créer T3.

    Je ne sais pas si Except est compatible avec ces types de list (j'ai le message d'erreur suivant que je lance le programme : "Le membre public 'Except' du type 'List(Of Stopwords)' est introuvable"

    Une idée de comment y remedier?
    Merci d'avance

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    A quoi sert ta classe concrètement ? Où est l'utilité d'avoir une liste d'objets d'une classe qui ne contient qu'une string, plutôt qu'une liste de string ?

    Tu peux aussi songer à créer ta propre classe de list qui implémenterait IEnumerable et ICollection ...

    Je ne sais pas comment tu as fait ton code, mais la liste of class restant IEnumerable, ça marche chez moi.

    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
    19
    20
    21
    22
    23
    24
           Dim T1 As New List(Of stopwords)
            Dim T2 As New List(Of stopwords)
            Dim T3 As New List(Of stopwords)
     
            Dim tata As New stopwords
            Dim toto As New stopwords
            Dim titi As New stopwords
            Dim tutu As New stopwords
     
            tata.stopword = "X"
            toto.stopword = "Y"
            titi.stopword = "V"
            tutu.stopword = "V"
     
            T1.Add(tata)
            T1.Add(toto)
            T1.Add(titi)
            T2.Add(tata)
     
            T3 = T1.Except(T2).ToList
     
            For Each item As stopwords In T3
                MsgBox(item.stopword.ToString) 'retourne X et Y
            Next
    En revanche, et sans que je sache pourquoi, ce code-ci me renvoit X,Y et Z.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim T1 As New List(Of stopwords)
            Dim T2 As New List(Of stopwords)
            Dim T3 As New List(Of stopwords)
     
            T1.AddRange({New stopwords With {.stopword = "X"}, New stopwords With {.stopword = "Y"}, New stopwords With {.stopword = "Z"}})
            T2.Add(New stopwords With {.stopword = "Z"})
     
            T3 = T1.Except(T2).ToList
     
            For Each item As stopwords In T3
                MsgBox(item.stopword.ToString) 'retourne X Y et Z
            Next
    Mais dans tous les cas, je n'ai pas de message d'erreur ...

  5. #5
    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
    Merci pour cette belle réponse

    C'est très bizarre, j'ai bel et bien mes 2 lists, qui sont non nulles (je vérifie avec une msgbox(T1.count) et msgbox(T2.count)

    Mais en appliquant la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    T3 = T1.Except(T2).ToList
     
            For Each item As stopwords In T3
                MsgBox(item.stopword.ToString) 
            Next
    Rien ne se passe, je n'ai pas de msgbox a chaque tour de boucle, et quand je teste le contenu de la liste T3 avec une msgbox(T3.count) toute à la fin de la procédure il me renvoit 0...
    Grrrr

  6. #6
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Peut-on voir le code complet ?

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

Discussions similaires

  1. Opération entre vecteurs
    Par Muriellle dans le forum Signal
    Réponses: 7
    Dernier message: 09/07/2008, 22h39
  2. Espace entre tableaux quand transfert emailing sur outlook 2007
    Par speedev dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 31/05/2008, 09h36
  3. Réponses: 1
    Dernier message: 06/01/2008, 23h16
  4. Opérations entre variables
    Par coincoin22 dans le forum Linux
    Réponses: 13
    Dernier message: 17/08/2007, 12h00
  5. [XHTML/CSS] Problème d'espaces entre tableaux
    Par falcon dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 16/06/2006, 09h19

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