begin process at 2012 02 16 19:26:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > OBJET AU HASARD D'UNE COLLECTION

OBJET AU HASARD D'UNE COLLECTION


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Source .NET ( DotNet ) Classé sous :randomize, collection, hasard Niveau :Débutant Date de création :22/06/2004 Date de mise à jour :22/06/2004 23:29:08 Vu :6 967

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Cet astuce vous permettra de sortir un objet au hasard d'une collection

Prenons par exemple une classe Humain qui a pour code :

    Private Class Humain
        Public Nom As String
  
        Public Sub New(ByVal NomHumain As String)
            Me.Nom = NomHumain
        End Sub

    End Class

Maintenant vous avez une société donc plusieurs Humain vous décidez donc de faire une collection d'Humain que vous nommez naturellement HumainCollection. Le code ressemble à ca :

    Private Class HumainCollection
        Inherits CollectionBase

        Default ReadOnly Property Item(ByVal index As Int32) As Humain
            Get
                Return CType(Me.List.Item(index), Humain)
            End Get
        End Property

        Public Function Add(ByVal Humain As Humain) As Humain
            Me.List.Add(Humain)
            Return Humain
        End Function

    End Class

j'ai ajouté la possibilité de rajouter des humains, et la propriété item, pour info de faire hériter notre classe faisait que les propriétés Count Clear GetEnumerator et RemoveAt

pour l'instant rien d'extraordinaire, ceux qui ont lu "Au coeur de Visual Basic.net" de Richard Clark (c2i.fr) verrons que je sors pas mes exemples au hasard (mais ca reste un excellent livre que je vous conseil).

Mais imaginons maintenant que vous vouliez prendre un Humain au hasard de votre classe.

pour cela modifions un peu le code de HumainCollection

    Private Class HumainCollection
        Inherits CollectionBase

        Default ReadOnly Property Item(ByVal index As Int32) As Humain
            Get
                Return CType(Me.List.Item(index), Humain)
            End Get
        End Property

        Public Function Add(ByVal Humain As Humain) As Humain
            Me.List.Add(Humain)
            Return Humain
        End Function

        Public Function Randomize() As Humain
            If Not Me.Count = 0 Then
                Dim Hasard As New Random
                Dim i As Integer = Hasard.Next(0, Me.Count)
                Return CType(Me.List.Item(i), Photo)
            End If
        End Function

    End Class

j'ai rajouté la function Randomize, celle ci retourne un humain qui bien sur trié au hasard de la collection

Le code de cette function est assez simple donc je ne l'explique pas.

donc maintenant une fois que l'on a notre collection d'humain, pour avoir un humain au hasard il suffit de faire

        Dim Societe as new HumainCollection
        Societe.Add(new Humain("Cyril"))
        Societe.Add(new Humain("Astrid"))

...

        Dim UnHumain As Humain = Societe.Randomize



MAJ :
[22.06.2004] Correction : si la collection est vide sa retournait une erreur

Source

  • Private Class HumainCollection
  • Inherits CollectionBase
  • Public Function Randomize() As Humain
  • If Not Me.Count = 0 Then
  • Dim Hasard As New Random
  • Dim i As Integer = Hasard.Next(0, Me.Count)
  • Return CType(Me.List.Item(i), Photo)
  • End If
  • End Function
  • End Class
    Private Class HumainCollection
        Inherits CollectionBase

        Public Function Randomize() As Humain
            If Not Me.Count = 0 Then
                Dim Hasard As New Random
                Dim i As Integer = Hasard.Next(0, Me.Count)
                Return CType(Me.List.Item(i), Photo)
            End If
        End Function

    End Class

 Conclusion

J'attend vos commentaires


 Sources du même auteur

Source .NET (Dotnet) ZIPPER UN REPERTOIRE EN CONSERVANT LA HIERARCHIE DES DOSSIER...
Source .NET (Dotnet) EXEMPLE DE PROPRIÉTÉ D'OBJET AVEC UN PETIT PLUS DANS LA FENE...
Source .NET (Dotnet) LOGER LES ERREURS DANS UN FICHIER XML
Source .NET (Dotnet) CREATION D'UN FICHIER XML EN .NET
Source .NET (Dotnet) LEVER UNE EXCEPTION PERSONNALISÉ

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture UN GAGNANT AU HASARD par TouTit_
Source .NET (Dotnet) UTILISATION DE SORTEDLIST POUR TRIER UNE COLLECTION DE VALEU... par blq
Source avec Zip CPROPGROUP : COLLECTION FAITE MAISON par Flocreate
Source avec Zip Source .NET (Dotnet) SÉRIALISTION - DÉSERIALISATION DE TABLEAUX ET COLLECTIONS par AlexMS
Source avec Zip Source avec une capture Source .NET (Dotnet) JEUX DE KENO par clinik

Commentaires et avis

Commentaire de ABF le 30/05/2007 12:04:53

Elle est ou la collection ?

Commentaire de Renfield le 30/05/2007 12:28:01 administrateur CS

voir section "source" ci dessus...

faut lire, avant de noter a tout va

Commentaire de simoneo le 02/08/2007 12:53:28

Bon code.

Commentaire de pheniximmortel le 09/02/2009 21:49:16

Une collection ne commence pas a 1 plutôt que a 0?

Hasard.Next(0, Me.Count)

Sinon sympa le code.

Commentaire de Renfield le 10/02/2009 06:32:35 administrateur CS

à 1 en VB6

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Collection d'objets [ par Guy Nancy ] Comment lister tous les objets (form, module, classe,...) d'un projet, afin d'effectuer le test suivant :********************************dim MyForm as J' ai un problème avec la fonction Randomize. [ par e-marck ] Bonjours, Je dois faire apparaître au hasard des nombre entre o et 10 pour le faire je fais x = rnd*10 et ça marche bien, mais comment puis-je f comment créer un tableau... [ par mike ] Voilà en fait je voudrais créer un tableau dans lequel une valeur tirée au hasard ne revienne plus ensuite! Par exemple si je fais un programme de lot le mot le plus long [ par Rodolf ] Voilà:g 9 lettres au hasard et je dois fabriquer des mots au hasard. Donc là je génére toutes les possibilités avec ces 9 lettres; mais avec la facon URGENT !!! Problème de collections [ par ols ] Etant habitué à la conception objet C++, un problème s'oppose à moi.Décor:J'ai définit un type d'objet TTypeVin à partir duquel j'ai fait une collecti SOS ! ! - Collection d'icônes [ par cameleon ] Bonjourje voudrais ouvrir une bibliothèque d'icônes personnelle dans une boite où l'on peut y voir toutes les icônes et choisir celle que l'on veut co Collections en ASP [ par Muad-Dib ] Salut tout le monde,J'ai créé une dll d'Apis dont l'une d'entre elle requiert une variable de type collection.Mon problème : je ne sais pas déclarer d Copie d'une collection ! [ par Niedernsill ] Comment faire une copie d'une collection ? et non pas une collection qui pointe vers les mêmes éléments comme ce codedim col2 as collectionset col2=ne La collection MSDN n'existe pas ??? aidez-moi SVP [ par Mario Soucy ] Bonjour, j'ai en ma possession les 2 cds de visual studio 6 entreprise edition et lorsque je viens pour installer MSDN il ne le trouve pas sur aucun d Choix de couleur au hasard par VB [ par Jeff ] Salut j'aimerais savoir comment on fait pour que VB puisse choisir au hasrad une couleur et la mette en mémoire...P.S. je suis débutant... Je doit réa


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales