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 :

Addition des collections


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut Addition des collections
    Bonsoir, je demande votre aide.
    Je crée des petits exercices pour mieux assimiler, mais je tombe sur un petit problème
    En lisant vous allez comprendre l'exercice:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Module Module1
     
        Sub somme(tablo As Array, saList As List(Of Integer), maList As List(Of Integer))
            For i = 0 To tablo.Length - 1
                maList.Add(tablo(i) + saList.Item(i))
                ' maList.Item(i) = tablo(i) + saList.Item(i)
            Next
     
        End Sub
        Sub Main()
            Dim monTablo(20) As Integer
            For i = 0 To monTablo.Length - 1
                monTablo(i) = i
            Next
            For Each elem In monTablo
                Console.WriteLine(elem)
            Next
            Console.WriteLine("=================================")
            Console.ReadKey()
            Dim maList1 As New List(Of Integer)
            maList1.AddRange(monTablo)
            For Each elem In maList1
                Console.WriteLine(elem)
            Next
            Console.WriteLine("=================================")
            Console.ReadKey()
            Dim maList2 As New List(Of Integer)
            somme(monTablo, maList1, maList2)
            For Each elem In maList2
                Console.WriteLine(elem)
            Next
            Console.ReadKey()
        End Sub
     
    End Module
    jusqu'ici pas de problème.
    Mais quand j'utilise le sub somme comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Sub somme(tablo As Array, saList As List(Of Integer), maList As List(Of Integer))
            For i = 0 To tablo.Length - 1
                   maList.Item(i) = tablo(i) + saList.Item(i)
            Next
     
        End Sub
    Le débogueur indique une erreur à cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maList.Item(i) = tablo(i) + saList.Item(i)
    voilà son message: Informations supplémentaires*:
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
    je ne comprends pas pourquoi (pourtant le i va de 0 à 20)
    J'apprends la programmation pour le plaisir

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Citation Envoyé par stracoma Voir le message
    voilà son message: Informations supplémentaires*:
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
    je ne comprends pas pourquoi (pourtant le i va de 0 à 20)
    i va peut-être de 0 à 20 mais la taille de ta collection (donc de maList2 dans ton main que tu passes à la méthode) a une taille de 0
    Au lieu d'assigner index par index dans cette collection vide ajoutes-y dedans (avec des Add) par exemple
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  3. #3
    Membre actif Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Points : 229
    Points
    229
    Par défaut
    Pour .add, je l'ai déjà fait dans le 1er code et ça marche.
    Avec votre remarque j'ai compris pourquoi le 2ème ne marche pas (on ne peut pas affecter des valeurs à des "i" qui n'existent pas, mais on peut en ajouter avec .add)
    Mais j'ai une question: peut on donner une taille à une liste dès sa déclaration, comme on le fait pour les tableaux (Dim tablo(20) par exemple)?
    J'apprends la programmation pour le plaisir

Discussions similaires

  1. probleme sur la gestion des collections
    Par joelc dans le forum ASP
    Réponses: 1
    Dernier message: 24/08/2006, 14h19
  2. Réponses: 6
    Dernier message: 22/05/2006, 20h12
  3. [VBA-E] Addition des valeurs des textbox
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 49
    Dernier message: 15/02/2006, 14h49
  4. [68k] Addition des 50 premières valeurs d'un tableau
    Par mortalius dans le forum Autres architectures
    Réponses: 2
    Dernier message: 01/12/2005, 14h43
  5. Réponses: 1
    Dernier message: 03/10/2005, 14h46

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