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

Windows Forms Discussion :

[C#] insertion collection endroit précis


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut [C#] insertion collection endroit précis
    bonjour,

    est-il possible d'ajouter un élément dans une collection existante à une position précise.

    exemple:

    ma collection contient 5 entrées je voudrais rajouté une entrée à la position 5+1 (pas de façon dynamique avec un List.Add. ...).

    Concrétement je voudrais faire un décalage dans ma collection pour moi pouvoir interchanger 2 positions (l'entree[1] va à la place de l'entrée[2] donc l'entrée[2] va en entrée[1])

    j'espér ne pas vous avoir endormi !

    merci !

  2. #2
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maCollection.Add(Element, Clé, Before, After)
    Before ou After peuvent être utilisés pour placer l'élément à insérer avant ou après un élément de la collection. Si Before ou After est un nombre c'est l'index des éléments qui est utilisé, si c'est une string c'est la clé


    http://plasserre.developpez.com/v1-6col.htm

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    salut !

    le hic c'est que je n'ai pas de méthode Add après maCollection ...


  4. #4
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    oui mais c'est quel genre de collections````??

    tu utilise quelle classe pour gérer ta collection?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    autant pour moi ! forcément si je ne précise pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     public class MaClasse
    {
    public uneCollection MaCol = new uneCollection(); //
    }
     
    public class Beta
    {
    //données, propriété accesseurs
    }
     
    public class UneCollection : System.Collections.CollectionBase
    {
    //méthode ajout, suppresion etc (dans la classe Beta)
    }
    et en fait j'appelle à partir d'une instance (dans une form par exemple) ma collection "MaCol" à partir de là j'ai accés au méthode ajout, supression etc ...


    voila pour les explications.

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 128
    Par défaut
    Les méthodes d'ajout ou de suppression sont spécifiques à la collection.
    C'est lequel que tu utilises ? ex. ArrayList, HashTable, etc.

  7. #7
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    A la place de CollectionBase, herite plutot de Arraylist

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    Citation Envoyé par shinkyo
    Les méthodes d'ajout ou de suppression sont spécifiques à la collection.
    C'est lequel que tu utilises ? ex. ArrayList, HashTable, etc.
    voici une méthode par exemple qui ajoute un élément à ma collection (MaCol) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void ajout(Beta UnBeta)
    {
         List.Add(UnBeta);
    }
    UnBeta est du type Beta que je construis de cette façon dans une form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Beta UnBeta= new Beta (txtDate.Text, txtLib.Text);
    //cela fait appel à mon constructeur puis j'ajoute à ma collection
    Instance.MaCol().ajout(UnBeta);
    Citation Envoyé par Piotrek
    A la place de CollectionBase, herite plutot de Arraylist
    Cela servira à ? si je le remplace je ne peux pas me servir de List.A etc ... quel solution envisages-tu avec ArrayList stp ?


    merci à vous.

  9. #9
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Qu'appelle tu List.A ?

    Il suffit simplement de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class UneCollection : System.Collections.Arraylist
    {
    //méthode ajout, suppresion etc (dans la classe Beta)
    }
    Du coup pour inserer une valeur a un index particulier, il suffit de faire .Insert() dans la classe de base

    Mieux encore, si tu developpe sous le framework 2.0 il y a les generiques avec par exemple: List<Beta>

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    List.Add(... Pardon je vais regarder du coté de ce que tu viens de dire !
    je vous tiens au courant !

    merci

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    me revoila !

    j'ai cherché sur le MSDN et google l'utilisation de tout cela mais n'est pas trouvé d'exemples qui correspondraient (juste un peu ) à ce que je cherche à faire...

  12. #12
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Il suffit de remplacer CollectionBase par Arraylist dans votre classe

    Ensuite, dans une methode ou fonction de cette classe, faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert(IndexOuDoitEtreInsereLaValeur, LaValeurAInserer)

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    salut Piotrek

    alors pour ma fonction pour insérer à un endroit précis j'ai fais ce que tu as dit (en fait je pensé qu'il fallait se servir de Insert derrière autre chose)

    pour les autres méthodes j'ai fait directement :
    RemoveAt(position) // methode de suppression
    Add(CeQueLonAjoute) //ajout sans position d'insertion précis)
    et je bloque pour la méthode qui me permet de séléctionner je faisais comme cela auparavant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Beta select(int index)
    {
         return (Beta)List[index];
    }
    évidemment il n'aime pas List[index] avec ArrayList...

    comment puis-je modifier cela ?

    merci !

  14. #14
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Comme tu herite de arraylist, ses fonctionnalites sont accessibles en mettant le prefixe "base" en C#

    Pour recuperer un element de la collection c'est Arraylist.Item[index] en heritant ca devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Beta select(int index)
    {
         return (Beta)Base.Item[index];
    }

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    base. ça fonctionne parfaitement mais je n'ai aps de fonction Item derrière... j'ai bien Add, insert etc etc mais pas Item... normal ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    base[index]


    j'avance et voit ce que ça donne merci bcp !

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 85
    Par défaut
    merci à vous !

    c'est parfait

    ArrayList bien plus pratique et offre beaucoup plus de possibilité !

    merci encore !

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

Discussions similaires

  1. Insertion dans textbox à l'endroit du focus
    Par micfont999 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/03/2007, 01h22
  2. collection avec l'ordre d'insertion
    Par keopsk dans le forum Langage
    Réponses: 3
    Dernier message: 28/05/2006, 20h13
  3. [9i] insertion dans une collection
    Par meuledor dans le forum Oracle
    Réponses: 2
    Dernier message: 17/02/2006, 12h02
  4. [Collections]Garder l'ordre d'insertion
    Par Leyne dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 13/12/2005, 19h25
  5. [CR7] Insertion subreport dans un endroit spécifique
    Par Spont dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 06/09/2004, 10h58

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