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

Framework .NET Discussion :

[1.1][Delphi.NET] Comment mélanger Hashtable/ArrayList ?


Sujet :

Framework .NET

  1. #1
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut [1.1][Delphi.NET] Comment mélanger Hashtable/ArrayList ?
    Hello,
    Je cherche à construire une collection de type key/value. Donc tout naturelement je me dis que je vais utiliser une Hashtable.
    Oui mais je voudrais aussi pouvoir parcourire ma liste avec un index comme un ArrayList.
    Il y a bien IEnumerator, mais je ne connais pas la position et en plus Current me retourne System.Object alors que moi je voudrai avoir le bon type.

    Je séche complétement, et je tourne en rond depuis un moment par ce que soit je pars depuis Hashtable et je des problèmes pour implémenté l'index soit je pars depuis ArrayList et je n'ai plus de key.

    J'éspère avoir été assez claire.

    merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Bonjour sur_uix
    tu bosses sous quel framework stp :

    Sur le principe dans ton cas il est surtout preferable d'employer une collection typée plutôt qu'ArrayList. Maintenant si tu as le moyen de travailler avec le Framework 2.0 les generics te faciliteront la tâche il me semble

  3. #3
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Merci de répondre,
    Je suis sur le framework 1.1 et en plus en Delphi

    Donc tu me proposes une "collection typée".
    Mais je pars depuis une classe abstraite ? de System.Collections, ou je n'implémente que les interfaces ?

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par sur_uix
    Merci de répondre,
    Je suis sur le framework 1.1 et en plus en Delphi

    Donc tu me proposes une "collection typée".
    Mais je pars depuis une classe abstraite ? de System.Collections, ou je n'implémente que les interfaces ?
    Ben par fainéantise , j'optais (avnt 2.0) pour l'implementation des Interface ICollection et IList, qui me donnais de bons resultats sachant tout de même que ce n'est pas absolument nickel propre de chez puriste .

  5. #5
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Citation Envoyé par neguib
    Citation Envoyé par sur_uix
    Merci de répondre,
    Je suis sur le framework 1.1 et en plus en Delphi

    Donc tu me proposes une "collection typée".
    Mais je pars depuis une classe abstraite ? de System.Collections, ou je n'implémente que les interfaces ?
    Ben par fainéantise , j'optais (avnt 2.0) pour l'implementation des Interface ICollection et IList, qui me donnais de bons resultats sachant tout de même que ce n'est pas absolument nickel propre de chez puriste .
    Et tu stocke tout dans un Array ?

    Par contre effectivement le .Net2 apporte beaucoup sur ce point.

  6. #6
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Il n'y a pas un design paterne sur MSDn pour construire des collections typées ?

    Bon je vais continuer à rechecher demaint.
    Bonne soirées

  7. #7
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879

  8. #8
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Oui entre autre.
    mais je sens que je vais être bon pour créer un classe qui permet de faire key/value/index.

    Sinon j'ai trouvé ce post
    http://www.developpez.net/forums/vie....php?p=2610446

  9. #9
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Que peux bien contenir ta collection pour avoir ce besoin key/value/index :

    Peut être dérivé de DictionaryBase en surchargeant sa méthode GetEnumerator pour qu'elle te renvoie un IEnumerator de ton cru typé

  10. #10
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    En faite c'est par ce qu'avec Delphi il y a les TStringList qui permet de le faire, et du coup on n'a pris l'habitude
    Mais j'ai envie de me détacher de plus en plus de la VCL !

    Je pense que je vais faire un collection Hashtable avec un enumerator typé.
    C'est pas mal comme idée ça non ?

  11. #11
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Citation Envoyé par neguib
    ...en surchargeant sa méthode GetEnumerator pour qu'elle te renvoie un IEnumerator de ton cru typé
    Oui effectivement, je vais voir demain ou boulot , Mais cela reste quand même beaucoup plus compliqué qu'avec un TStringList, pour un résultat équivalent.

  12. #12
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par sur_uix
    En faite c'est par ce qu'avec Delphi il y a les TStringList qui permet de le faire, et du coup on n'a pris l'habitude
    Mais j'ai envie de me détacher de plus en plus de la VCL !

    Je pense que je vais faire un collection Hashtable avec un enumerator typé.
    C'est pas mal comme idée ça non ?
    çà joue !

  13. #13
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Pour info j'ai trouvé ceci dans la msdn.
    A SortedList is a hybrid between a Hashtable and an Array.
    Ca existe donc déjà Ouai.

    Bon je vais quand même essayer d'étendre une Hashtable avec un enumerateur typé.

  14. #14
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    beuuuuuuuh ça ne fonctionne pas comme je voudrai, car avec Delphi ont ne peux pas surcharger les propriété donc Current reste un System.Object.

    Du coup je dois créer une nouvelle méthode d'accès à mon type. Arggggg, vraiment rien de simple.

  15. #15
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par sur_uix
    beuuuuuuuh ça ne fonctionne pas comme je voudrai, car avec Delphi ont ne peux pas surcharger les propriété donc Current reste un System.Object.

    Du coup je dois créer une nouvelle méthode d'accès à mon type. Arggggg, vraiment rien de simple.
    Mmmmh vivement que Delphi.Net passe à la 2.0 Tu sais si il y a une sortie prevue d'1 version Personal :

  16. #16
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    Citation Envoyé par neguib
    Tu sais si il y a une sortie prevue d'1 version Personal :
    heu non je sais pas.

  17. #17
    Membre confirmé
    Avatar de sur_uix
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 550
    Points
    550
    Par défaut
    J'ai :trouve: enfin. Mais s'est quand même pas super facile à metre en place.
    J'ai une belle collection type avec son IEnumerator typé aussi. Mais afin de me facilité la tâche par la suite je me suis créé des templates avec ModelMaker.

    YES

    PS. C'est un beau post de modérateurs !!!!

  18. #18
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par sur_uix
    J'ai :trouve: enfin. Mais s'est quand même pas super facile à metre en place.
    J'ai une belle collection type avec son IEnumerator typé aussi. Mais afin de me facilité la tâche par la suite je me suis créé des templates avec ModelMaker.

    YES

    PS. C'est un beau post de modérateurs !!!!
    Remarques ton code a tout de même dû gagner en robustesse, bel effort Ce fût un plaisir

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

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