Comment utiliser une boucle FOR avec un Dictionary ? [Résolu]

Signaler
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
-
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
-
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

4 réponses

Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
156
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

Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
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
          ...
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
32
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
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
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 ^^