Retrouvé les clefs d'une collection (VB2005) [Résolu]

Signaler
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
-
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
-
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

Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
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
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

???
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"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

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"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Oui l'objet dictionary répond parfaitement à mes besoins
MERCI pour l'info

Amicalement
Pensez "Réponse acceptée"
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
"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
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

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"
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
* 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.
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Oki-doki
Un dernier merci pour les infos
Amicalement
Pensez "Réponse acceptée"
Messages postés
608
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016

iL Y A UN equivalent de la Connection VB6 en VB.NET ?

Afyn - Navedac
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Une question par topic Merci
(system.Data.oledb, ou system.Data.odbc, ou system.Data.sqlclient, ...)

Amicalement
Pensez "Réponse acceptée"