Retrouvé les clefs d'une collection (VB2005)

Résolu
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 2 juin 2008 à 16:35
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 1 juil. 2008 à 11:20
Bonjour ,
Alors voila dans une de mes classes j'ai comme variable une collection. Je voudrais si possible retrouvé la liste des clef de cette collection. (Pour les ajouté à un ComboBox par exemple).
(La seul solution que je trouve pour le moment serais une autre collection contenant uniquement les clefs de la première, autant en données qu'en clef, pas top je trouve )

Un truc du genre :
'8<-------------------------------------------------------------------
'[...]
    For Compteur = 0 as Int32 To MeCollection.Item.Count - 1
       Me.ComboBox1.Items.Add (MeCollection.Item(Compteur).Key)
    Next
'[...]
'------------------------------------------------------------------->8
Possible ? (Si oui c'est bien caché )
Merci d'avance
Amicalement
Pensez "Réponse acceptée"

10 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
2 juin 2008 à 16:50
Salut,

Une collection n'a pas de clé, peut-être parles-tu d'un dictionary?

Dim Dictionary as Generic.Dictionary(Of String, Object)
For Each Key As String In Dictionary.Keys
    Consol.WriteLine(Key)
Next

Ou tu peux aussi faire:
For Each Item As Generic.KeyValuePair(Of String, Object) In Dictionary

    Consol.WriteLine(Item.Key & ": " & Item.Value.ToString)

Next
3
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
2 juin 2008 à 16:57
???
Heeeee une collection n'a pas de clef ???
Si je fait :
'8<----------------------------------------------------
Public Sub Toto()
        Dim MeCollection As Collection = New Collection()
        MeCollection.Add("La valeur", "La clef")
        MsgBox(MeCollection.Item("La clef"))
End Sub
'---------------------------------------------------->8
J'ai bien un message box m'affichant "La valeur".

D'ayeur la définition du Add dans une collection es :
'8<----------------------------------------------------
PublicSubAdd ( _
ItemAs<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.Object">Object</mshelp:link>, _
<<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.Runtime.InteropServices.OptionalAttribute">OptionalAttribute</mshelp:link>> OptionalKeyAs<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.String">String</mshelp:link> = Nothing, _
<<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.Runtime.InteropServices.OptionalAttribute">OptionalAttribute</mshelp:link>> OptionalBeforeAs<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.Object">Object</mshelp:link> = Nothing, _
<<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.Runtime.InteropServices.OptionalAttribute">OptionalAttribute</mshelp:link>> OptionalAfterAs<mshelp:link tabindex="0" xmlns:mshelp="http://msdn.microsoft.com/mshelp" keywords="T:System.Object">Object</mshelp:link> = Nothing _
)
'---------------------------------------------------->8

Source MSDN

Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
2 juin 2008 à 17:01
Je vais tester si un objet "dictionary" ne réglerais pas le problèmes (de toute façon ma collection ne contien que des string, tout du moin CETTE collection qui me posse problèmes).
Merci des info sur les dictionary

Amicalement
Pensez "Réponse acceptée"
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
2 juin 2008 à 17:05
Oui l'objet dictionary répond parfaitement à mes besoins
MERCI pour l'info

Amicalement
Pensez "Réponse acceptée"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
2 juin 2008 à 17:13
"Heeeee une collection n'a pas de clef ???"



Ah oui En 5 ans je n'ai jamais utilisé cette VisualBasic.Collection, mais je conseil d'utliser les collections fournies par le framework plutot que les éléments de retro-compatibilité de VisualBasic
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
2 juin 2008 à 17:29
Pourquoi conseil tu sa (je répond déjà un peut tout seul Mais tu auras sans doute plus d'info) ?

* Plus rapide (Sa je n'es sait rien, si tu à des comparatif je suis preneur) ?
* Plus complet (sa semble déjà le cas pour les clefs, rien que pour sa, sa vaut le coup) ?
* Possibilité de typer les données à stocké (et oui je viens de le faire avec un enum, du coup plus besoin de caste pour faire un 'select case' simplement)
* Autre ???

Amicalement
Pensez "Réponse acceptée"
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
2 juin 2008 à 18:32
* Plus rapide (Sa je n'es sait rien, si tu à des comparatif je suis preneur) ?
Très probablement oui, mais je n'ai pas de comparatif
* Plus complet (sa semble déjà le cas pour les clefs, rien que pour sa, sa vaut le coup) ?
Non pas forcément, mais son utilisation est différente (elle s'utilise comme les collection VB6)
*
Possibilité de typer les données à stocké (et oui je viens de le faire
avec un enum, du coup plus besoin de caste pour faire un 'select case'
simplement)
Aventage certain avec l'arrivé du framework 2.0,  effectivement

J'ajoute encore que VisualBasic.Collection n'existe que dans VisualBasic, alors que tout ce qui est dans System.Collections existe dans tous les autres langages .NET, et donc permet de facilement traduire un code VB vers un autre langage.
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
3 juin 2008 à 09:15
Oki-doki
Un dernier merci pour les infos
Amicalement
Pensez "Réponse acceptée"
0
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
30 juin 2008 à 23:37
iL Y A UN equivalent de la Connection VB6 en VB.NET ?

Afyn - Navedac
0
Polack77 Messages postés 1095 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
1 juil. 2008 à 11:20
Une question par topic Merci
(system.Data.oledb, ou system.Data.odbc, ou system.Data.sqlclient, ...)

Amicalement
Pensez "Réponse acceptée"
0
Rejoignez-nous