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 :

ArrayList contenant des String[]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut ArrayList contenant des String[]
    Bonjour,
    Afin de traiter une série de taille non fixe de String[] je les insere dans un ArrayList. Mais au debuggage je m'apercois que tous les éléments du ArrayList contiennent les memes valeurs, celles du dernier String[] ajouté.
    Voila un resume du code :
    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
     
    {
    	private ArrayList monArrayList = new ArrayList();
    /// etc	
     
    	public void RemplirMonArrayList()
    	{
    		String[] coupleString = {"",""};
    		for(condition)
    		{
    	//Traitement
    	// recuperation des 2 Strings recherchées		
    			coupleString[0] = string1;
    			coupleString[1] = string2;
    			monArrayList.Add(coupleString);
    		}
    	}
    }
    J'aimerais savoir si c'est une abbération d'utiliser un ArrayList avec des String[] ou bien s'il s'agit d'une erreur de déclaration des variables de ma part et quelles modifications apporter.
    Sachant que l'utilisation d'un Dictionnary<> n'est pas adapté vu que je voudrais laisser la possibilite d'entrer plusieur fois la meme clé et que je voudrais éviter d'utiliser des String[,] pour des raisons pratiques.
    D'avance merci.

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    C'est bon tu as mis la fin du message

    Je suis pas trop calé niveau théorie, mais je dirais simplement que lorsque tu utilises
    tu bosses sur des références, donc quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    coupleString[0] = string1;
    tu modifies la valeur d'une référence qui ne change jamais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monArrayList.Add(coupleString);
    et là tu ajoutes toujours la même référence à ta liste, c'est donc tout à fait normal qu'elle ne contienne que des valeurs identiques... Si tu fais comme ça tu n'auras plus le problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void RemplirMonArrayList()
     {
         for(condition) {
             // Traitement
             // recuperation des 2 Strings recherchées    
             monArrayList.Add(new string[] { string1, string2 });
         }
     }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Cela reste encore un peu confu ces histoires de réferences (va falloir revoir la theorie).
    En tout cas merci pour ta réponse rapide et tres claire.

    ++

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Salut,

    Si tu bosses avec .Net 2 ou plus, tu peux complètement oublier les ArrayList, et utiliser les List<T> typées. C'est nettement plus confortable. Les tableaux aussi sont devenus quasiment inutiles.
    ಠ_ಠ

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour les informations Guulh.
    J'irai voir comment fonctionnent les List<T>.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    les "List" te génèrent une sorte d'ArrayList typé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<string[]> Machin = new List<string[]>();
    string[] bidule = new string[]{"burp","birp"};
    Machin.Add(bidule);
    Machin[0] te renverra une string[] alors qu'avec un Arraylist ca t'aurait renvoyé un Object
    et si t'aimes pas le nom de mes variables c'est pareil !
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci Themacleod1980 pour tes éclaircissements ca me donne de très bonnes indications sur la manière d'utiliser les List<>.
    Et j'adore le nom de tes variables

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

Discussions similaires

  1. Vector de structure contenant des string
    Par Nicolas Bauland dans le forum C++
    Réponses: 9
    Dernier message: 04/02/2010, 12h47
  2. Lecture/affichage d'un fichier contenant des string
    Par Khaoula.85 dans le forum Visual C++
    Réponses: 4
    Dernier message: 02/12/2009, 11h13
  3. parcourir ArrayList contenant des vectors
    Par imane_bennouna dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/08/2006, 10h56
  4. Problème avec un switch contenant des strings
    Par dessinateurttuyen dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2006, 12h56

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