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 :

list(of) en poo [Débutant]


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 list(of) en poo
    Bonsoir à tous.
    En voulant apprendre la poo en Vb 2010, je crée des exemples à partir de ce que j'ai appris.
    J'ai créé le code suivant contenant un module et une classe "eleve", en le lisant vous allez comprendre le principe
    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
    Module Module1
     
        Sub Main()
     
            Dim Klasse As New List(Of eleve)
            Klasse.Add(New eleve("Mous", 11, 10))
            Klasse.Add(New eleve("Alain", 13, 13.2))
            Klasse.Add(New eleve("Sacha", 12, 15.5))
            Klasse.Add(New eleve("Fatima", 10, 11))
     
            Dim i As Byte = 1
            For Each x As eleve In Klasse
                For y As Integer = 0 To Klasse.Count - 1
                    Console.WriteLine(Klasse(y).afficher)
                Next
                Console.WriteLine("  nombre de boucles : " & i & vbCrLf)
                i += 1
                Console.ReadKey()
            Next
     
        End Sub
     
    End Module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class eleve
        Public prenom As String
        Public age As Byte
        Public note As Double
        Public Sub New(ByVal pprenom As String, ByVal aage As Byte, ByVal nnote As Double)
            Me.prenom = pprenom
            Me.age = aage
            Me.note = nnote
        End Sub
        Public Function afficher()
            Return "  " & Me.prenom & "  " & Me.age & "   " & Me.note
        End Function
    End Class
    Donc à chaque appuie sur une touche il y ré-affichage de tous les objets ( avec un compteur qui s'affiche)
    Jusque là tout va bien, et voila le résultat
    Nom : develpper.JPG
Affichages : 132
Taille : 22,9 Ko
    Mais voilà mon problème, j'ai essayé depuis 3 h d'éliminer le 1er objet après chaque boucle, c'est à dire, à la 2ème boucle ne plus avoir Mouss, à la 3ème boucle ne plus avoir Alain, à la 4ème boucle ne plus avoir Sacha ...
    J'ai essayé plusieurs choses (notament Klasse.RemoveAt(0)) mais sans succès.
    Si quelqu'un pouvait m'aider, Merci
    J'apprends la programmation pour le plaisir

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Il ne faut pas ajouter, supprimer un élément dans une collection pendant un parcours de celle-ci avec une boucle avec For Each.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Dim i As Byte = 1
            While Klasse.Count > 0
                For Each UnEleve As eleve In Klasse
                    Console.WriteLine(UnEleve.afficher)
                Next
                Klasse.RemoveAt(0)
                Console.WriteLine("  nombre de boucles : " & i)
                i += 1
                Console.ReadKey()
            End While
    On utilise For Each pour parcourir la collection et effectuer l'affichage.
    Et une boucle classique pour ce traitement particulier de suppression. (et dans ce traitement à chaque tour de boucle, on supprime le premier, jusqu'à ce qu'il n'y en ait plus)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  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
    Merci pour ton aide. ça marche, et surtout j'ai compris.
    Et ça:
    Il ne faut pas ajouter, supprimer un élément dans une collection pendant un parcours de celle-ci avec une boucle avec For Each
    doit être gravé dans ma substance grise.
    Encore merci
    J'apprends la programmation pour le plaisir

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

Discussions similaires

  1. pre allocation mémoire pour liste d'objet (poo)
    Par masson.cle dans le forum MATLAB
    Réponses: 0
    Dernier message: 19/05/2012, 23h26
  2. procédures de listes en POO
    Par num_a dans le forum Delphi
    Réponses: 5
    Dernier message: 19/04/2007, 11h47
  3. [POO] Liste des variables de mon Objet
    Par hisy dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2006, 11h51
  4. Aide sur POO :: Classe et liste d'objet
    Par Andry dans le forum Langage
    Réponses: 1
    Dernier message: 23/01/2006, 16h51
  5. [POO] Liste de référence
    Par Celelibi dans le forum Langage
    Réponses: 13
    Dernier message: 24/12/2005, 11h13

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