Comment utiliser une boucle FOR avec un Dictionary ?

Résolu
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 - 7 déc. 2010 à 22:19
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 - 8 déc. 2010 à 11:09
Bonjour,

Je n'arrive pas a boucler avec FOR sur mon Dictionary.
Mon Dictionnary c'est KEY As String et VALUE as String()...

Comment faire la liaison entre i et UserMethodes ?
Une "Boucle par Index" pour transmettre chaque KEY/VALUE à Test2 ?

Exemple du problème:
'UserMethodes =
'(A) (12345)
'(B) (6789) 
'...
Shared UserMethodes As New Dictionary(Of String, String())

Shared Sub Test1()
     Dim i As Integer
     For i = 0 To (UserMethodes.Count - 1)
          'Je sèche !
          'L'idéale pour moi:  UserMethodes.Item(i)
          'qui retourne en index 0   (A)(12345)  à Test2()
          Test2(UserMethodes.ElementAt(i)????)
     Next
End Sub

Shared Sub Test2(ByVal CurrentMethode As Dictionary ?)
  'objectif: lire 12345
  'Si i = 0
   CurrentMethode(?, 0) = 1
   CurrentMethode(?, 1) = 2
  'objectif: lire 6789
  'Si i = 1
   CurrentMethode(?, 0) = 6
   CurrentMethode(?, 1) = 7
End Sub
A voir également:

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
7 déc. 2010 à 23:14
Bonjour,

Shared UserMethodes As New Dictionary(Of String, String())

...

For Each lPair as KeyValuePair(Of String, String()) In UserMethodes
...
Next

Sinon, à voir si c'est possible :

For i as Integer=0 to UserMethodes.Count-1
UserMethodes.Keys(i)
UserMethodes.Values(i)
Next

3
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
7 déc. 2010 à 22:37
Je stop pour today, dernier test en cours (fonctionne pas):

Erreur 1 Impossible de convertir une valeur de type 'System.Collections.Generic.Dictionary(Of String, String()).Enumerator' en 'System.Collections.Generic.IDictionary(Of String, String())'.


     Dim CurrentDic As IDictionary(Of String, String())

     For i = 0 To (clsExtract.UserMethodes.Count - 1)
          CurrentDic = clsExtract.UserMethodes.GetEnumerator
          ...
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
8 déc. 2010 à 00:13
Expliques mieux ce que tu veux car la
c'est un peu flou.

Tu utilises peut être les mauvaises structures ou classes ou collection
pour réaliser ce te veux

expliques avec un exemple sans code
et un code avec un contexte fonctionnel serait peut etre bien
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
8 déc. 2010 à 11:09
KeyValuePair transmet parfaitement l'occurrence du Dictionary en cours a Test2(). Merci HENRY !!!


nhervagault, je fais de mon mieux pour essayer de me faire comprendre.
Je suis prêt à accepter toutes critiques afin de parler un langage .NET universel ^^
Mes exemples cible un problème dans une forme simple, si je colle mon code en brute, personne n'aurait envie de m'aider !
En concentrant votre précieuse aide sur des bouts d'exemples, je parfait les ensembles bordélique de mon code en espérant être un jour capable de partager mes connaissances en .NET sur vbfrance avec un code qui sonnerait comme de la poésie ^^
0
Rejoignez-nous