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 :

vaut il mieux utiliser ArrayList ou implémenter collection?


Sujet :

Framework .NET

  1. #1
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut vaut il mieux utiliser ArrayList ou implémenter collection?
    Bonjour j'ai une classe faite en VB 6 appelée ListContraintes du type Collection, elle va contenir une liste d'objets de la classe "Contrainte". J'aimerai faire de meme en C# j'ai deux solutions :

    - soit utiliser ArrayList "ListContraintes" et ajouter les objets "Contrainte" dedans

    - soit creer une classe ListContraintes dérivée de CollectionBase et ajouter les objets de type "Contrainte" avec la méthode add...

    quel est le meilleur choix?

    Merci

    IRNBRU

  2. #2
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    tu peux aussi utiliser une arraylist typé avec la nouvelle version de C#.
    http://lgmorand.developpez.com/dotnet/framework2/#L1.2

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  3. #3
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Euh merci pour la suggestion mais je bosse en 1.1 dans la boite. Peux tu répondre à ma question merci j'ai pense prendre arraylist... mais bon...

    IRNBRU

  4. #4
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Si tu es en .NET 1.1 et que tu n'as pas la chance de pouvoir utiliser les génériques je te conseille de faire ta propre liste.

    C'est plus secure car tu ne pourras pas ajouter n'importe quoi à ta collection alors que ta array list tu pourras y mettre ce que tu veux. Un autre avantage est qu'une fois que tu as ta collection implémenté tu peux y ajouter des fonctionnalitées.

    Donc je suis plutôt anti-arrayList et pro-collections. Coté perf je suis pas sur que ça change grand chose, mais coté design architectural c'est mieux avec une collection

  5. #5
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Merci Néo je pense rester avec arraylist pour le moment puis je verrai si cela vaut la peine de faire des nouvelles classes dérivées.

    IRNBRU

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    ArrayList pour faire au plus vite sans se casser la tête mais gare au bugs dans la durée

    Collection le nec à tout point de vue, du taf au début mais pour la suite du gâteau
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Dans sharpDevelop, il me semble qu'il y a un beau template(wizard?) pour créer les collections avec déjà presque tout dedans. Si tu utilise VS, tu peux toujours incorporer dans ton projet le code ainsi créé.

  8. #8
    Membre confirmé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Points : 500
    Points
    500
    Billets dans le blog
    1
    Par défaut
    Merci pour ces réponses à cette question je pense intéressante (tous les experts DOTNET m'ont répondu 8) ) résolu

    IRNBRU

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par neo.51
    Donc je suis plutôt anti-arrayList et pro-collections.
    C'est pour ça qu'il existe CollectionBase pour ne pas avoir à se taper toute la plomberie, mais pouvoir typer correctement :)

    Citation Envoyé par neo.51
    Coté perf je suis pas sur que ça change grand chose
    Via CollectionBase c'est un ArrayList en-dessous, tout à la mano ça dépend de ce qu'on fait, mais ça a des chances d'être plus lent :)

    Citation Envoyé par neo.51
    mais coté design architectural c'est mieux avec une collection :)
    Un collection typée oui. Un ArrayList est une collection aussi sinon :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    ahh

    Ca m'étonnait de ne pas voir Maniak débarquer dans la conversation

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Morpheus
    ahh :)

    Ca m'étonnait de ne pas voir Maniak débarquer dans la conversation :)
    Wai ben du coup je me suis retrouvé sur la page avec les nouveautés de .NET2 (dont je compte bien me tenir éloigné encore une bonne semaine :), et... ben en fait j'aurais mieux fait de m'abstenir :)

    Je prédis de *longues* séances d'engueulades au sujet de toutes les super-méga-génialissimes améliorations indiquées :)

    (rien à dire sur 1.1 et 1.2. pour le reste, on va s'arrêter là avant de se fâcher)

    (et pourtant, il y en aurait des choses à raconter...)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Maniak
    Citation Envoyé par Morpheus
    ahh
    Ca m'étonnait de ne pas voir Maniak débarquer dans la conversation
    Wai ben du coup je me suis retrouvé sur la page avec les nouveautés de .NET2 (dont je compte bien me tenir éloigné encore une bonne semaine , et... ben en fait j'aurais mieux fait de m'abstenir
    Je prédis de *longues* séances d'engueulades au sujet de toutes les super-méga-génialissimes améliorations indiquées
    (rien à dire sur 1.1 et 1.2. pour le reste, on va s'arrêter là avant de se fâcher)
    (et pourtant, il y en aurait des choses à raconter...)
    Pourtant ton contrepoint m'interresse car jusqu'à present il m'a permis d'apprehender .Net de façon plus juste bien que je ne sois qu'un touriste comparé à toi. J'ai ma propre opinion mais l'ecoute des arguments fonciers que tu abordes me sont de mon point de vue bénfiques.
    donc pas d'engueulades mais du Audiard je suis preneur
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par neguib
    Pourtant ton contrepoint m'interresse car jusqu'à present il m'a permis d'apprehender .Net de façon plus juste bien que je ne sois qu'un touriste comparé à toi. J'ai ma propre opinion mais l'ecoute des arguments fonciers que tu abordes me sont de mon point de vue bénfiques.
    :lol: donc pas d'engueulades mais du Audiard je suis preneur :wink:
    Faudra un autre topic pour ça :)

    Mais déjà il faudra attendre la sortie officielle la semaine prochaine, que je confirme de visu si les abominations dont il est question sur la page pré-citée sont aussi abominables qu'elles paraissent, ou si c'est juste un problème de compréhension à la lecture :)
    Pour l'instant je vais éviter de trop m'avancer vu que je m'en suis tenu éloigné jusque là.

    Mais je sens qu'il va y avoir sacrément matière à débattre sur plusieurs points (au hasard : l'intérêt négatif des classes partielles :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    en effet
    Petite merveille, les classes partielles permettent de diviser une même classe dans plusieurs fichiers. Les "Maniak" du "une classe, un fichier" vont devoir revoir leur credo .
    Bon c'est moi qui a transformé le mot en rouge mais bon
    Personnellement en utilisant en ce moment (seul) la version beta2 je n'ai trouvé aucun intérêt à decouper mes classes pour le plaisir de les decouper sinon je soupçonnerai que ma conception est à revoir car j'en deduirai que ma classe >> occulte plusieurs classes possibles.

    Donc j'en viens à penser que j'étais de temps en temps un maniaque de 1 namespace => 1 dll
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  15. #15
    Nip
    Nip est déconnecté
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    963
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 963
    Points : 1 076
    Points
    1 076
    Par défaut
    Citation Envoyé par Maniak
    Mais je sens qu'il va y avoir sacrément matière à débattre sur plusieurs points (au hasard : l'intérêt négatif des classes partielles
    Y avait un article dans la MSDN à ce sujet; il ne préconise l'utilisation des classes partielles UNIQUEMENT dans le cadre du design en ASP.net (pour éviter la double declaration des différents contrôles, par exemple). Mais de toute façon c'est certain que ca va donner lieu à du grand n'importe quoi (modifier les caracteristiques du langage pour ameliorer l'IDE, c'est ...une idée ... ...) et c'est loin d'être une "petite merveille".

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par neguib
    Personnellement en utilisant en ce moment (seul) la version beta2 je n'ai trouvé aucun intérêt à decouper mes classes pour le plaisir de les decouper sinon je soupçonnerai que ma conception est à revoir car j'en deduirai que ma classe >> occulte plusieurs classes possibles.
    Ah :)

    Citation Envoyé par Nip
    Mais de toute façon c'est certain que ca va donner lieu à du grand n'importe quoi (modifier les caracteristiques du langage pour ameliorer l'IDE, c'est ...une idée ... ...) et c'est loin d'être une "petite merveille".
    Ah :)

    Ben ça fait plaisir à lire :)

    Citation Envoyé par neguib
    Donc j'en viens à penser que j'étais de temps en temps un maniaque de 1 namespace => 1 dll :wink:
    Une dll par namespace t'es sûr ? :)
    Parce qu'en général il y a un sacré paquet de namespaces, alors ça ferait un sacré paquet de dlls :)

    Par contre 1 classe => 1 fichier, ça sonne drôlement bien :)
    La séparation .h/.cpp du C++ m'a beaucoup manquée quand j'ai commencé le C# et... on s'y fait, mais ça manque toujours. Les classes partielles n'ont rien à voir avec ça. Une classe qui est tellement grosse qu'il faut étaler le code sur plusieurs fichiers pour ne pas avoir un pavé de 5000 lignes, ça reste un pavé de 5000 lignes qui fait beaucoup trop de choses et qui devrait être redispatché en plusieurs *classes*.
    Le principe 1 classe == 1 responsabilité, il n'a pas été sorti sans raison.

    Mais apparemment, pousser les développeurs à faire de la POO est moins prioritaire que d'attirer les bidouilleurs du dimanche qui n'ont rien à cirer de pondre des horreurs imbitables que d'autres devront passer des semaines/mois à essayer de rattraper...

    (non mais vraiment j'arrête là, c'est pas le bon topic, et pour peu que ça déborde sur les autres points, y en a pour 50 pages :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  17. #17
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Maniak
    Par contre 1 classe => 1 fichier, ça sonne drôlement bien
    Perso, j'ai toujours fait de la même facon: 1 classe = 1 fichier


    Une classe qui est tellement grosse qu'il faut étaler le code sur plusieurs fichiers pour ne pas avoir un pavé de 5000 lignes, ça reste un pavé de 5000 lignes qui fait beaucoup trop de choses et qui devrait être redispatché en plusieurs *classes*.
    Une classe de 5000 lignes, étalée sur plusieurs fichiers, ca resteras toujours une classe de 5000 lignes. Dans ce cas, les classes partielles, c'est juste bon à faire en sorte que ce soit plus agréable à lire.....

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Morpheus
    Une classe de 5000 lignes, étalée sur plusieurs fichiers, ca resteras toujours une classe de 5000 lignes. Dans ce cas, les classes partielles, c'est juste bon à faire en sorte que ce soit plus agréable à lire.....
    C'est du sparadrap pour faciliter la vie des responsables de ces choses, histoire qu'ils ne se sentent vraiment pas poussés à faire leur code correctement. C'est pire. Et c'est pas plus agréable à lire. Au lieu de sauter de méthode en méthode dans un même fichier, il faut en plus jongler entre les onglets. Surtout qu'il ne faut pas trop espérer que la répartition soit faite de manière logique vu le type de... développeurs qui seront le plus tentés d'utiliser ça...

    /me se fouette pour vraiment arrêter sur ce topic :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

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

Discussions similaires

  1. [Débutant] Vaut il mieux utiliser un Dictionary ou une Liste? (Performance)
    Par takinelinfo dans le forum C#
    Réponses: 17
    Dernier message: 04/08/2011, 14h49
  2. Réponses: 12
    Dernier message: 03/07/2009, 14h37
  3. Réponses: 4
    Dernier message: 31/10/2006, 10h12
  4. Faut il mieux utiliser awt ou swing ?
    Par weed dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 06/01/2006, 02h54
  5. Vaut-il mieux des petites ou une grosse... fonction ?
    Par laurent_ifips dans le forum C
    Réponses: 2
    Dernier message: 19/12/2005, 13h30

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