IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment declarer un Dictionary(Of T) de JaggedArrays


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut Comment declarer un Dictionary(Of T) de JaggedArrays
    Bonjour,

    J'ai declare et mis en forme la jagged Array suivante qui fonctionne correctement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public MyJaggedArray()() As Indicateur
     
    MyJaggedArray = New Indicateur(nbUT)() {} ' 1ere dimension
    MyJaggedArray(0) = New Indicateur(nbTotalMin) {}
    MyJaggedArray(1) = New Indicateur(CInt(nbTotalMin / 2)) {}
    J'essai de creer le Dictionary(Of T) pour avoir donc 2 keys avec cette JaggedArray associee a chaque key. j'ai essaye plein de possibilites au mieux j'ai fais ceci qui ne genere pas d'erreur a la compil.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private dictionaryJaggedArray As New Dictionary(Of Short, Indicateur)
     
    For Each kvp As KeyValuePair(Of Short, Indicateur) In newBar
      dictionaryJaggedArray.Add(kvp.key, MyJaggedArray(nbUT)(1)) ' <- LIGNE A PB
    Next
    la ligne dictionaryJaggedArray.Add... n'indique aucune erreur de compil
    qd je vais au pas a pas je retrouve bien mes keys mais il y a Nothing comme value alors que que je devrais retrouve la JaggedArray, quand je passe la souris au dessus de MyJaggedArray(nbUT)(1) je vois bien la JaggedArray ????
    quelqu'un a t'il une idee? de plus je met (1) pour eviter l'erreur de compil mais idealement pour moi il faudrait faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dictionaryJaggedArray.Add(kvp.key, MyJaggedArray(nbUT)())
    merci pour vos lumieres

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    (1) et () ne font pas du tout la meme chose, donc écrire un truc juste parce que ca passe c'est pas terrible

    quel est le message d'erreur, sur quelle ligne, et avec quelle valeur des variables au moment du plantage ...
    tu peux aussi débugger en rajoutant du code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each kvp As KeyValuePair(Of Short, Indicateur) In newBar
      dim value as indicateur
      if not typeof MyJaggedArray(nbUT) is indicateur then messagebox.show("pas normal")
      value = MyJaggedArray(nbUT)
     
      dictionaryJaggedArray.Add(kvp.key, ) ' <- LIGNE A PB
    Next
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    j'ai donc essaye le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MyJaggedArray(1)(1) = New Indicateur
    If TypeOf MyJaggedArray(1)(1) Is Indicateur Then MessageBox.Show("Type OK")
    If TypeOf MyJaggedArray(1)(2) Is Indicateur Then MessageBox.Show("Type OK")
    MyJaggedArray(1)(1) affiche bien ok alors que MyJaggedArray(1)(2) ne l'affiche pas ce qui expliquait que j'avais Nothing a kvp.Value.
    Au final et apres d'autre essais j'ai l'impression qu'on ne pas faire de dictionary(of T) d'une Array entiere mais seulement des elements de l'Array ce qui ne m'avance pas.
    Je vais laisser tomber et faire + simplement une Array de JaggedArray ou rajouter une dimension a la JaggedArray.
    merci,

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    Au final c'etait juste la declaration qui etait fausse il fallait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dictionaryJaggedArray = As New Dictionary(Of Short, System.Array)
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dictionaryJaggedArray = As New Dictionary(Of Short, Indicateur)
    ou Indicateur etait le contenu de la JaggedArray
    Public MyJaggedArray()() As Indicateur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/01/2009, 11h59
  2. Réponses: 3
    Dernier message: 15/12/2005, 22h04
  3. Comment déclarer une variable globale
    Par davkick dans le forum C
    Réponses: 13
    Dernier message: 20/05/2005, 18h50
  4. [INDEPENDANT]Comment declarer son travail ?
    Par xufux dans le forum Freelance
    Réponses: 21
    Dernier message: 03/07/2004, 23h23
  5. Réponses: 2
    Dernier message: 22/03/2004, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo