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

C# Discussion :

Collection dans une autre collection


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 110
    Par défaut Collection dans une autre collection
    Salut a tous,

    J'ai un petit soucis de conversion avec mes collections. J'ai une collection "collectionClient" qui à la capacité de stocker 46 items. J'ai une seconde collection "collectionCommande" qui stock mes objets suivants les actions que j'effectue. A la fermeture du second form, pour revenir au premier je stock ma collectionCommande dans ma collectionClient à un index précis qui correspond à un client. A la réouverture du second form je veux pouvoir afficher mes objets de ma collectionCommande pour un client particulier, qui correspond à un index dans ma collectionClient.

    J'arrive à la faire en VB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    collectionCommande = collectionClient(index)
    Mais je n'arrive pas à la faire en C# en reprenant le même modèle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    colletionCommande = collectionClient[index];
    Quelqu'un pourrait il m'aider à résoudre ce problème minime ?
    Merci par avance

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Quels sont les type de test objets ? des tableaux ? (du type Machin[]) ? des List ? (du type List<Machin>) des ArrayList ?
    Quelle erreur as-tu ?
    Un autre truc, si tu viens de VB : En c# (comme dans plein de langages, d'ailleurs), le premier élément d'une collection a pour un indice 0. Pas 1.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 110
    Par défaut
    En essayant de faire une représentation de mon problème, cela donnerai ça :

    collectionClient : collectionCommande : maCommande(objet de Class Commande)
    maCommande(objet de Class Commande)

    En faite, j'ai une collection principale qui contient jusqu'à 46 collection secondaire et ces collections secondaires contiennent un nombre d'objet de ma classe Commande.

    Ce que je veux faire c'est récupérer une collection secondaire à un indice particulier de ma collection principale.

    L'erreur que j'ai est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	Impossible de convertir implicitement le type 'object' en 'System.Collections.ArrayList'. Une conversion explicite existe (un cast est-il manquant*?)
    Je commence toujours mes indices à 0 que se soit en VB ou C#

    J'espère que tu pourras m'aider avec cela

  4. #4
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    D'après le message d'erreur, tu utilises des ArrayList.

    Quand tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList l;
    Machin m = l[0];
    Le compilo te renvoie une erreur parce que ArrayList est une collection non typée ; et donc l[0] renvoie un object. Et C# ne fait pas de conversion implicite.

    Connais tu les collections génériques, comme List<T> ? Elles sont apparues avec le framework 2 et permettent de définir des collections dont les éléments sont d'un type donné.

    Ta collection principale est donc une List<List<Commande>>, et tes collections secondaires des List<Commande>. Tu pourras alors écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maListeSecondaire = listePrincipale[0];

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Par défaut
    d'aprés le message tu dois caster ton objet contenu dans ta collection,
    car par defaut ta collection retourne un objet
    colletionCommande = (colletionCommande )collectionClient[index];

    Pour eviter cela tu devrais utiliser une collection générique ( List<T> par exemple )

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 110
    Par défaut
    Merci mais en faite j'ai tout simplement oublié de préciser le type de convertion de l'objet et cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    collectionCommande = (ArrayList)collectionClient[index];
    Merci encore, je vais pouvoir retourner au boulot ^^

  7. #7
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Citation Envoyé par Ornitho76 Voir le message
    Merci mais en faite j'ai tout simplement oublié de préciser le type de convertion de l'objet et cela donne :
    Tu as quand même tout intérêt a préfrer les collections typées aux ArrayList, qui ne servent plus à rien si tu utilises le framework 2 ou plus

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2015, 17h52
  2. Rajouter des éléments dans une collection depuis une autre classe
    Par Sup3rc0c0 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 15/03/2012, 17h48
  3. Transfert d'une collection vers une autre dans la jsp
    Par nsdcrew dans le forum Struts 1
    Réponses: 10
    Dernier message: 15/06/2007, 11h37
  4. Comment afficher un Set(COLLECTION) DANS UNE jTABLE
    Par taf dans le forum Composants
    Réponses: 3
    Dernier message: 05/04/2006, 11h53
  5. Réponses: 6
    Dernier message: 24/03/2006, 09h22

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