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 :

liste 2d - problème d'ajout de ligne [Débutant]


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 42
    Points : 29
    Points
    29
    Par défaut liste 2d - problème d'ajout de ligne
    Bonjour à tous,

    Je viens de vb.net et je suis passé sous c# il y a peu (pour d'obscure raison ). Je viens avec une question de pur débutant.

    Je fais des petits programme de calcul pour mon boulot et j'ai régulièrement besoin de tableau 2d pouvant être redimensionnée. sur C#, après avoir regardé, je me suis dit que le passage par des list 2d serait plus simple pour le redimensionnement.

    voici mon bout de 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                List<List<string>> matrice = new List<List<string>>();
    
                List<string> ligne = new List<string>();
    
    
                ligne.Add("1");
                ligne.Add("2");
                matrice.Add(ligne);
                ligne.Clear();
    
                ligne.Add("3");
                ligne.Add("4");
                matrice.Add(ligne);
               
           
                Console.WriteLine(matrice[0][0]+"     " + matrice[1][0]); ///> réponse donnée: 3    3
    
            }
        }
    }
    Le problème est que ma matrice contient autant sur la première ligne que sur ma seconde ligne le même résultats J'aurai de prime abord pensé que la première ligne serait "1 2" et la deuxième "2 3". Je suis sans doute passé à côté de quelque-chose avec la commande "add"...

    Merci pour vos réponses

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    en fait, quand tu fais un clear de ta ligne, tu supprimes les éléments mais ton tableau matrice a gardé en référence la liste que tu as crées.

    donc, si tu veux remplir ton tableau, soit tu peux t'orienter vers un tableau de string, plutôt... ou bien simplement créer une nouvelle liste
    pour chaque ligne...
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    d'ailleurs, en complément, un post interessant ici :

    http://stackoverflow.com/questions/1...ional-array-vs

    Qui explique (via une question utilisateur) la différence entre un tableau de tableau ( jagged array) et un tableau à 2 dimensions finies !!!
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Pfff pourquoi faire toujours compliqué.

    Bon, le problème était que je souhaitais faire un tableau 2d redimensionable de manière dynamique. Les tableaux me disent m****. Les listes me disent merde aussi... J Enfin, il faut chercher et se casser la tête. Beni soit le jour où l'on créera un langage simple exécutable pour les ingénieurs (y a matlab et python, mais pour creer un exe... c'est pas natif). Bon, bhen je vais retourner sur vbnet qu'au moins je gérais plus facilement et je resterai en windowsform. Merci pour tout

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    C# est relativement simple et plein de personnes arrivent à faire des calculs compliquées ou manier des structures dynamiques sans pour autant laisser tomber.

    Dans ta situation, si tu crées une nouvelle liste pour chaque "ligne" de ton tableau, tu auras ton coté redimensionnable

    donc, si tu remplaces ton "ligne.clear()" par un "ligne = new ligne()" tu obtiendras le comportement que tu veux
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    a ok nickel. Je pensais que je devais redéfinir une nouvelle liste par un nom chaque fois différent...

    Edit
    après vérificaiton, et une injure de la part du compilateur, c'est plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ligne = new List<string>();
    Mais super ça me débloque bien

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

Discussions similaires

  1. Problème d'ajout de ligne dans une JFrame
    Par nrgumn dans le forum Débuter
    Réponses: 2
    Dernier message: 04/01/2012, 06h29
  2. Problème d'ajout de ligne dans un JTable
    Par amine1980 dans le forum Composants
    Réponses: 2
    Dernier message: 18/10/2011, 17h58
  3. Problème d'ajout de ligne dans une datagridview
    Par mustapha_ess dans le forum C++/CLI
    Réponses: 1
    Dernier message: 23/07/2010, 16h16
  4. problème d'ajouter une ligne sur jtable
    Par minooo dans le forum Débuter
    Réponses: 3
    Dernier message: 12/05/2010, 23h42
  5. Réponses: 0
    Dernier message: 16/08/2007, 10h51

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