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 :

[C#] Comment supprimer des élément d'une ArrayList ?


Sujet :

C#

Vue hybride

roxor972 [C#] Comment supprimer des... 16/05/2006, 12h53
neguib 8O euh çà existe des... 16/05/2006, 13h27
roxor972 Oups oui tu as raison je me... 16/05/2006, 13h35
neguib Mais pourquoi tu n'utilises... 16/05/2006, 14h09
roxor972 Merci neguib, J'était... 16/05/2006, 14h22
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut [C#] Comment supprimer des élément d'une ArrayList ?
    Bonjour,

    Pour je travaille avec une ArrayList de 8 colonnes contenant des infos sur n profils. Dans mon programme je souhaite dans certaines conditions supprimer des élément de cette liste : comment faire ?

    j'ai utilisé ces lignes ; une pour chaque colonne, mais visiblement les éléments ne sont pas supprimés. Voici donc les lignes de code, i étant incrémenté dans une boucle for pour parcour chaque profil et serveur, serveur_type, ... sont des constantes (de valeurs 0, 1, 2, ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    this.profilsTab[i,serveur].Remove(0,profilsTab[i,serveur].Length);
    this.profilsTab[i,serveur_type].Remove(0,profilsTab[i,serveur_type].Length);
    this.profilsTab[i,chemin].Remove(0,profilsTab[i,chemin].Length);
    this.profilsTab[i,profil_type].Remove(0,profilsTab[i,profil_type].Length);
    this.profilsTab[i,login].Remove(0,profilsTab[i,login].Length);
    this.profilsTab[i,pass].Remove(0,profilsTab[i,pass].Length);
    this.profilsTab[i,reverse].Remove(0,profilsTab[i,reverse].Length);
    this.profilsTab[i,destination].Remove(0,profilsTab[i,destination].Length);
    Par avance Merci !

  2. #2
    Expert confirmé
    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
    Par défaut
    euh çà existe des ArrayList multidimensionnel ??? Tu es sûr de parler de ArrayList
    Pour moi il est unidimensionnel mais peut contenir n'importe quel type d'objet, donc par exemple un Type Profil contenant tes 8 champs (serveur, serveur_type, chemin, profil_type, login, pass, reverse, destination)
    Ensuite RemoveAt devrait suffire
    Si tu es sous 2.0, je te suggère les collections génériques

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut
    Oups oui tu as raison je me suis trompé avec autre chose

    En fait c'est un tableau string avec n lignes et 8 colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    private string[,] profilsTab;
    profilsTab = new string[nbProfils,8];
    C'est possible de supprimer des lignes dans ce tableau ?

    Je suis sous 1.1

  4. #4
    Expert confirmé
    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
    Par défaut
    Mais pourquoi tu n'utilises pas plutôt ma piste avec ArrayList
    tu te crées une classe Profil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    public class Profil
    {
       #region constructeurs
        public Profil(string server, string servertype, string path, string
     profiltype, string login, string pass, string reverse, string destination)
        {
           this.myserver = server;
           this.myservertype = servertype;
           this.mypath = path;
           this.myprofiltype = profiltype;
           this.mylogin = login;
           this.mypass = pass;
           this.myreverse = reverse;
           this.mydestination = destination;
        }
        // ...etc...
       #endregion
     
       #region accesseurs publics
        //mettre les accesseurs set si necessaire
        public string Serveur
        { get{ return this.myserver;}}
        public string ServeurType
        { get{ return this.myservertype;}}
        public string Chemin
        { get{ return this.mypath;}}
        public string ProfilType
        { get{ return this.myprofiltype;}}
        public string Login
        { get{ return this.mylogin;}}
        public string Pass
        { get{ return this.pass;}}
        public string Reverse
        { get{ return this.myreverse;}}
        public string Destination
        { get{ return this.mydestination;}}
     
       #endregion
     
       // tu peux également surcharger la méthode ToString() par exemple
     
       #region champs privés
        private string myserver;
        private string myservertype;
        private string mypath;
        private string myprofiltype;
        private string mylogin;
        private string mypass;
        private string myreverse;
        private string mydestination;
       #endregion
    }
    Maintenant tu peux directement les collectionner dans un ArrayList, le must serait de devlopper ta propre collection ProfilsCollection dérivée de CollectionBase afin d'obtenir directement les items caster en Profil

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut
    Merci neguib,

    J'était justement en train de tester en passant par une classe ; j'ai fait une classe juste avec un constructeur je ne devrai pas avoir besoin de méthodes normalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public class profil
    {
        public string serveur, serveur_type, chemin, profil_type, login, pass,
     reverse, destination ;
     
        public profil(string serveur, string serveur_type, string chemin, string
     profil_type, string login, string pass, string reverse, string destination)
        {
            this.serveur = serveur;
            this.serveur_type = serveur_type;
            this.chemin = chemin;
            this.profil_type = profil_type;
            this.login = login;
            this.pass = pass;
            this.reverse = reverse;
            this.destination = destination;
        }
    }
    Ensuite j'ai essayé d'ajouter un profil (les valeurs sont récupérées dans un fichier xml) dans l'ArrayList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private ArrayList profilsTab;
    profilsTab = new ArrayList();
    profil profil = new profil(element[i].SelectSingleNode
    ("serveur").InnerText.ToString(),
        element[i].SelectSingleNode("serveur_type").InnerText.ToString(),
        element[i].SelectSingleNode("chemin").InnerText.ToString(),
        element[i].SelectSingleNode("profil_type").InnerText.ToString(),
        element[i].SelectSingleNode("login").InnerText.ToString(),
        element[i].SelectSingleNode("pass").InnerText.ToString(),
        element[i].SelectSingleNode("reverse").InnerText.ToString(),
        element[i].SelectSingleNode("destination").InnerText.ToString());
    profilsTab.Add(profil);
    Comment faire maintenant pour accéder aux propriétés ??
    J'avais pensé par exemple à :
    Mais c'est pas bon

  6. #6
    Expert confirmé
    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
    Par défaut
    Ben oui je te l'ai dit un ArrayList contient des objets donc il faut transtyper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string leserveur = ((profil) profilsTab[0]).serveur;
    Bon comme tu as choisi de faire une classe et non une structure, il serait préférable de mettre tes champs en private et d'implémenter les accesseurs que je t'ai montré

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

Discussions similaires

  1. Comparaison des éléments d'une ArrayList
    Par Emilie MARQUOIS-OGEZ dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 31/10/2006, 15h17
  2. Supprimer des éléments d'une liste
    Par espadon1 dans le forum Langage
    Réponses: 2
    Dernier message: 31/05/2006, 15h08
  3. [Collections]Supprimer des doublons dans une ArrayList
    Par emie31 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2005, 15h15
  4. Supprimer des éléments dans une TreeView ?
    Par souch dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/09/2005, 12h20
  5. Réponses: 14
    Dernier message: 15/01/2004, 01h15

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