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 :

collection généric VS tableau


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 59
    Par défaut collection généric VS tableau
    Bonjour à tous,

    Une question me trotte dans la tête donc je vous demande l'information.
    quelle est le but d'utiliser une collection generic plutot qu'un simple tableau...

    en clair:
    pour quoi utiliser ca : dim maList As List(Of String)
    plutot que ca : dim monTab(5) as string

    a part que la list n'a pas de taille initiale et que l'on peut rajouter autant d'info que l'on veut plus facilement, je ne vois pas d'autres avantages...

    coté mémoire et autres avantages, il est conseillé d'utiliser lequel des 2 ?


    Merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par djoao Voir le message
    a part que la list n'a pas de taille initiale et que l'on peut rajouter autant d'info que l'on veut plus facilement, je ne vois pas d'autres avantages...
    C'est déjà bien suffisant. Une collection générique offre la flexibilité d'un conteneur redimensionnable avec le côté fortement typé d'un tableau. Je ne vois pas ce que tu veux de plus
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 59
    Par défaut
    Merci pour la réponse...
    et coté performance y-a-t-il une différence ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Oui il y a une différence, celle qu'il y a entre une liste chaînée et un tableau: l'accès à un élément plus rapide sur un tableau. Une liste ne s'utilise que si tu as besoin d'ajouter/supprimer dynamiquement des éléments, que tu ne connais pas le nombre à l'avance.

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Mais non, il n'y a pas de différence entre une list<T> et un array pour les accès...
    Ce n'est pas parce que c'est appelé List que c'est une liste chainée...
    En interne, List<T> utilise un Array pour stocker les données, donc le temps d'accès est exactement le même.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    Mais non, il n'y a pas de différence entre une list<T> et un array pour les accès...
    Ce n'est pas parce que c'est appelé List que c'est une liste chainée...
    En interne, List<T> utilise un Array pour stocker les données, donc le temps d'accès est exactement le même.
    Ah j'ai peut être répondu trop vite. J'ai supposé que les List .net sont des objets de type liste chainées, et que donc l'accès en était plus long qu'un array avec en contrepartie une insertion/suppression plus rapide. Tu dis que les List .net sont des tableaux derrière ? ça veut donc dire que lorsque tu ajoutes des éléments à une liste, il y a un mécanisme d'agrandissement du tableau, de recopie des objets etc... ?

    Je vais me renseigner.

    EDIT: effectivement l'implémentation de la classe List utilise un tableau, je trouve le nom malheureux et j'aurai du me renseigner. D'ailleurs on trouve une classe LinkedList dont le nom est clair cette fois, et qui doit donc être bien plus performant dés qu'on veut ajouter/supprimer des éléments.
    Au passage merci pour le smiley condescendant, il fait toujours plaisir celui-là.

Discussions similaires

  1. System collections généric list
    Par Plano dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/10/2009, 19h35
  2. Réponses: 1
    Dernier message: 13/05/2009, 17h21
  3. [Collections] Que choisir (tableau ou Map)
    Par thomine dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 22/06/2005, 16h25
  4. [PLSLQ] collections record et tableau
    Par romuald9999 dans le forum SQL
    Réponses: 3
    Dernier message: 18/08/2004, 16h24
  5. [Collections] Transformer un tableau de données en une chaîne
    Par NATHW dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 03/06/2004, 16h44

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