Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COLLECTION GÉNÉRIQUE


Information sur la source

Catégorie :Modules Source .NET ( DotNet ) Classé sous : collections, générique, trier, clef Niveau : Initié Date de création : 04/04/2007 Date de mise à jour : 04/04/2007 21:41:17 Vu / téléchargé: 8 123 / 377

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

VB NET Collection Générique avec Clef, index et triable sur n'importe quelle propriété
J'ai couplé deux exemples trouvés sur le net pour arriver à mes fins, dont un était en C#,
une collection avec une clef non triée automatiquement , un index et qui puisse être triée
sur n'importe quelle propriété.
Merci de votre indulgence, je débute en VBNET depuis 1 mois
Il y a du nettoyage à faire j'ai tout laissé en vrac, désolé.
Toute critique constructive sera la bienvenue...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 avril 2007 21:41:17 :
ajout de commentaire

Commentaires et avis

signaler à un administrateur
Commentaire de BnJ99 le 12/04/2007 11:09:07

Bonjour,
d'après ce que je crois comprendre, c'est le source de ta bibliotheque, mais peux t'on avoir une petite appli de démonstration qui nous montrerait les possibilités de ta bibliotheque (ajout, suppression, accès avec les clef, etc.)

J'aurais 2 petites remarques après avoir lu le code :

- 1. Y'a des lignes de code mise en commentaire, il aurait été préférable de les supprimer (là je chipote)
- 2. Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code,
Tu fais un nouvelle classe ? Commente ton code pour dire à quoi elle sert.
Tu fais une nouvelle fonction un peu touffue ? Commente ton code pour dire ce qu'elle va faire.
Tu viens de finir un bout de code sortie de ton imagination délirante (si si, avoue) ? Commente ton code pour expliquer ce que ça fait et comment ça le fait.

C'est hyper important de commenter, d'une part pour nous qui lisons le code d'un autre, et d'autre pour toi. Car dans 6 mois quand tu auras besoin de remettre le nez dedans pour faire une modif' ou une amélioration...ben tu seras dans les pixels jusqu'au cou et tu perdras un temps fou à recomprendre ton propre travail.

signaler à un administrateur
Commentaire de ADSLASDL le 12/04/2007 14:09:38

Bonjour,
en fait c'est une "Sorted list" que tu as créé.

SortedList: c'est une Classe .Net

Il permet l'accès aux valeurs par l'intermédiaire des clés associées ou des index.

C'est un hybride de HashTable et de Array.

On ajoute un élément par mySL.Add(Clé,Valeur)

La séquence d'index est basée sur la séquence de tri. Quand un élément est ajouté, il est inséré dans l'ordre de tri adéquat, et l'indexation s'ajuste en conséquence. Le tri est donc automatique.

On peut donc lire une valeur par sa Clé ou son Index:

Quand la clé d'un élément permet d'accéder à celui-ci à l'aide de la propriété d'indexeur Item, l'élément se comporte comme Hashtable.
mySL.Item(CLE) 'retourne la valeur correspondant à la clé CLE

Quand l'index d'un élément permet d'accéder à celui-ci à l'aide de GetByIndex ou de SetByIndex, l'élément se comporte comme Array (tableau avec un Index).
mySL.GetKey(3) 'retourne la Clé qui est dans l'élément d'index 3

mySL.GetByIndex(3) 'retourne la valeur qui est dans l'élément d'index 3


SortedList maintient en interne deux tableaux , un tableau pour les clés et un autre pour les valeurs associées.


A ton service

signaler à un administrateur
Commentaire de id2006 le 13/04/2007 11:58:11

bonjour,
désolé pour les commentaires, pas le temps, pourtant je preche pour ça, mais là je suis
en phase de découverte de VB.NET

Pour mes devs. en vb6 j'utilisais la méthode qui consiste à créer des collections d'objets calqués sur la db, en fait un 3-tiers réduis à 2-tiers. (couche métier et acces donnée regroupees)
ex: si j'ai une table Users -> j'ai une classe cUsers(la collection) et une classe cUser
cUsers hérite de la collection "Inherits IGenericObject(Of Integer, cUser, cUsers)"
cUsers contient les méthodes Load (depuis la base) add, remove, item, etc...
cUser contient les propriétés tel que Prenom,nom, etc...
cUser contient Update

dans add,remove et update on
je mettrais un petit projet en ligne des que j'aurais un instant. désolé je fais pas le gars overbooké, mais là j'ai vraiment pas le temps

ex du ADD dans la collection

'OVERLOADS PAR CE QUE ADD EST DANS LA COLLECTION
Public Overloads Sub Add(ByRef User As cUser)

        Try

            Dim i As Integer

            Dim SQL_Cnx As New SQLServer
            SQL_Cnx.Connect("sa", "DAMO", "POR-ALEX\PORDAMO", "DAMO_PARAMS")

            Dim SqlCmd As SqlCommand = New SqlCommand("INSERT INTO Users" & _
                               "(TypeUser, Civilite,Prenom,Nom,Login,Password)" & _
                                "Values(" & User.TypeUser & ", " & _
                                User.Civilite & ", " & _
                                User.Prenom & ", " & _
                                User.Nom & ", " & _
                                User.Login & ", " & _
                                User.Password & ")
            'C'EST ICI QU ON SE SERT DE LA COLLECTION GENERIQUE
            MyBase.Add(i, User)

        Catch ex As Exception
            MsgBox(ex.InnerException.Message)
        End Try

    End Sub

dans l'interface on peut ecrire

        Private Sub LoadDataGrid()
            Dim oUsers As cUsers
            Dim oUser as cUser


            Users.AutoSort=False
            Users.load 'dans le load il y a la requete qui charge la collection
            'ici on trie sur deux champs
            Users.SortExpression = "Nom ASC, Prenom ASC"
            Users.Sort()

            For Each oUser In DADParams.Users
                With oUser
                    dagUsers.Rows.Add(oUser.Key, _
                                        oUser.Login, _
                                        oUser.Prenom, _
                                        oUser.Nom, _
                                        oUser.DateNaissance, _
                                        oUser.NumSS)
                End With
            Next

        End Sub

voila si ça peut aider, désolé je ferais de mon mieux pour fournir un projet
clair, ceux qui ont le temps d'étudier la question me diront ce qu'ils en pensent.
Je dev. sur VB.NET depuis une mois et les limitations que j'avais avec VB6 se sont envolées.



signaler à un administrateur
Commentaire de id2006 le 13/04/2007 12:05:32

j'ai oublié, NON le tri n'est pas auto justement, dans les collection clef, valeur, le trie est tjs effectué sur la clef, ici le tri est sur le ou les champs qu'on a défini à l'aide de SortExpression et on utilise la méthode sort pour trier à moins d'avoir laissé la propriété Autosort = True, il faut désactiver cette propriété quand on charge la collection sinon le tri se fait à chaque insertion et ça rame, ensuite on la reactive apres le chargement pour des insertions une à une.

ex de sortexpression

SortExpression = "Nom ASC, Prenom ASC"
SortExpression = "Nom ASC, Prenom DESC"

SortExpression = "Nom ASC"
SortExpression = "Nom ASC, Prenom DESC, DateDeNaissance ASC"

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment trier un fichier ASCII ?? [ par Cesar ] Salut,Je voudrai trier un fichier ecrit par WRITE #1,xx,xx,xx,xx,xx,etc...Il contiens a peux pres 500 ligne sur 10 colonnes.Sinon, le moyen de trier u Trie dans un contrôle ListView [ par Nicolas ] J'ai petit problème avec le contrôle ListView, je parvient trés bien à trier les différentes colonnes au moyen de la proprieté "SortOrder, mais je n'a Comment faire défiler du texte de bas en haut comme un générique de film [ par KOOK ] Je voudrais savoir comment faire pour faire défiler du texte comme dans un générique de film dans un formulaire (form) en vb merci@+ comment trier un tableau? [ par david ] Existe -t'il une fonction (SORT???) pour classer par ordre croissant ou décroissant les éléments d'un tableau à 1 dimensionet sinon quel algoritme si collections [ par hegoak ] comment faire une collection avec tous les fichiers d'un répertoire Comment lire une clef de la base de registre ? [ par DArKCroW ] Bon voila je voudrais savoir comment lire ou ouvrir une clef de la base de registre !!Serasi t'il possible que l'on me face un exemple avec les donner OCX pour faire un générique de fin [ par Amstel ] Je recherche un OCX permettant de réaliser un scrolling de texte du bas de l'écran vers le haut comme un générique de FIN d'un film...Je sais pô si ça Trier les éléments d'une DBCombo [ par thomrico ] Bonjour,J'ai une liste déroulante de type DBCombo qui est relié à une base de données. Donc ma liste est composée des élements enregistrés dans cette aidez-moi! trier des données dans une liste [ par sony22 ] A partir d'un ou plusieurs chiffres tapées dans un textbox(départements)trier dans une colonne les données correspondantes et afficher dans un combobo trier par ordre [ par | - BLAFARD - | ] N'y aurait y il pas une gentille personne quipourrai comment faire un alghoritme de tri rapide


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.