begin process at 2010 02 10 01:46:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Enumération d'une ArrayList à deux colonnes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Enumération d'une ArrayList à deux colonnes

vendredi 13 janvier 2006 à 10:46:18 | Enumération d'une ArrayList à deux colonnes

kbalevil

Bonjour à tous.

Avant tout, je tiens à préciser que je débute en C# (version framework 2.0) et que je viens de VB (grosse expérience, d'où certaines mauvaises habitudes et un manque de 'vrai' programmation objet)

J'ai un soucis sur une ArrayList, je la créer à partir d'un tableau à une colonne, simplement lorsque je souhaite récupérer les différents éléments, ligne de tableau par ligne de tableau, ca ne va pas. Je récupère tous les éléments de manière séquentielle.
Voici le code :

Class
{
    private String[] C_tab_Entrainements = new String[4];
    private ArrayList C_arl_Entrainements = new ArrayList();
   
    //  Procédure d'écriture
    private void C_PROC_Ecriture()
    {
        for(Colonne = 0; Colonne < 5; Colonne ++)
            C_tab_Entrainements [Colonne] = "Colonne " + Colonne;
        C_arl_Entrainements.AddRange(C_tab_Entrainements);

        for(Colonne = 0; Colonne < 5; Colonne ++)
            C_tab_Entrainements [Colonne] = "ColonneBis " + Colonne;
        C_arl_Entrainements.AddRange(C_tab_Entrainements);
   
        C_PROC_Lecture(C_arl_Entrainements, 1)
    }

    //  Procédure de lecture
    private void C_PROC_Lecture(ArrayList Tableau, Byte Colonne)
    {
        foreach(Tableau. s in Tableau)
        {
            MessageBox.Show(s.ToString());
        }
    }

}

Au démarrage j'avais utilisé Add au lieu de AddRange, et dans le cas d'une recherche sur un élément, il m'indiquait le type du tableau (String[]).
Je ne sais donc pas où placer l'appel à la bonne colonne, je pourrais toujours utiliser une boucle d'itération pour ne lire que les éléments voulu, mais n'y a t il pas une solution plus directe ?
Pourriez vous SVP m'indiquer où se situe mon problème ?

Merci d'avance

vendredi 13 janvier 2006 à 11:03:36 | Re : Enumération d'une ArrayList à deux colonnes

taoetc

Réponse acceptée !
Class
{
    private String[] C_tab_Entrainements = new String[4];
    private ArrayList C_arl_Entrainements = new ArrayList();
   
    //  Procédure d'écriture
    private void C_PROC_Ecriture()
    {
        for(Colonne = 0; Colonne < 5; Colonne ++)
            C_tab_Entrainements [Colonne] = "Colonne " + Colonne;
        C_arl_Entrainements.AddRange(C_tab_Entrainements);
// ici, tu ajoutes tes 5 éléments à la fois ,  donc dans l'arraylist,  tu as mis
//5
éléments , et non pas l'élement tableau

    
Le truc s'est de savoir si tu veux faire une arraylist de tableau,  ou une arraylist d'élément.

Apparement, tu veux faire une arraylist de tableau ( en gros un tableau de tableau )

dans ce cas, ton code devient
Class
{
    private String[] C_tab_Entrainements = new String[4];
    private ArrayList C_arl_Entrainements = new ArrayList();
   
    //  Procédure d'écriture
    private void C_PROC_Ecriture()
    {
        for(Colonne = 0; Colonne < 5; Colonne ++)
            C_tab_Entrainements [Colonne] = "Colonne " + Colonne;
        C_arl_Entrainements.Add(C_tab_Entrainements);

        for(Colonne = 0; Colonne < 5; Colonne ++)
            C_tab_Entrainements [Colonne] = "ColonneBis " + Colonne;
        C_arl_Entrainements.Add(C_tab_Entrainements);
   
        C_PROC_Lecture(C_arl_Entrainements, 1)
    }

    //  Procédure de lecture
    private void C_PROC_Lecture(ArrayList Tableau, Byte Colonne)
    {
         string[]   tab ;
        foreach(object s in Tableau)
        {//pour chaque tableau
              try
              {
                  // je convertis mon objet en tableau de string
                   tab = (string[]) s ;
                  string  listElement = string.Empty;
                  if(s != null  et s.Lenght >0)
                  {
                     for(int i = 0 ; i <s.Lenght ; i++)
                     {// je lis chaque élément du tableau
                              listElement += s[i] + "   ";
                     }
                 }
                  MessageBox.Show(listElement) ;
               }
               catch(Exception exp)
               {
                     MessageBox.Show("Erreur, taoetc ne raconte que des conneries  car :" + exp.Message);
               }

               
        }
    }

}


Be happy , by
Tao

vendredi 13 janvier 2006 à 12:40:11 | Re : Enumération d'une ArrayList à deux colonnes

kbalevil

Bon grosso modo ça avance, j'ai remplacé quelques éléments qui étaient eronnés apparement :

                 if(tab != null  et tab.Lenght >0)
                  {
                     for(int i = 0 ; i <tab.Length ; i++)
                     {// je lis chaque élément du tableau
                              listElement += tab[i] + "   ";
                     }
                 }

Y a encore un truc.
Il me sort toujours le dernier élément (Liste des ColonneBis) 2 fois, soit le nombre de messages attendus, mais pas les bonnes données.

Deux questions subsidiaires :
tab = (string[]) s ;  C'est ça qu'on appelle le cast ?
Quelle différence entre string et String ?

Merci encore

vendredi 13 janvier 2006 à 15:17:06 | Re : Enumération d'une ArrayList à deux colonnes

kbalevil

Réponse acceptée !
Bon,

j'ai donc trouvé où le bas blaisse, c'est au niveau de la variable tableau, tant que celle ci n'est pas obsolète, l'ArrayList s'y réfère, en faisant une boucle comme suit :
    //  Procédure d'écriture
    private void C_PROC_Ecriture()
    {
        for(Cpt = 0; Cpt < 2; Cpt ++)
       {
           
            String[] C_tab_Entrainements = new String[4];
            for(Colonne = 0; Colonne < 5; Colonne ++)
                C_tab_Entrainements [Colonne] = "Colonne " + Cpt + " " + Colonne;
                C_arl_Entrainements.Add(C_tab_Entrainements);

       }
        C_PROC_Lecture(C_arl_Entrainements, 1)
    }

j'ai contourné le problème, d'où ma question, comment peut on rendre une variable obsolète, de façon à ce que l'ArrayList prennent ces dernières valeures acquisent et passe à autre chose ?

Merci

vendredi 13 janvier 2006 à 15:22:52 | Re : Enumération d'une ArrayList à deux colonnes

taoetc

fait un new dessu si tu veux te reservir de la variable,  ou alors  la mettre  égale à null
cela ne marche que si c'est un objet

tab = (string[]) s   oui c'est un cast, 

et différence entre String et string,  heu, aucune idée.   J'utilise toujours string 


Be happy , by
Tao

vendredi 13 janvier 2006 à 15:23:57 | Re : Enumération d'une ArrayList à deux colonnes

taoetc

Autre chose, c'est bien de valider la solution , meme si c'est toi qui la poste.
Ca évite au personnes qui veuillent répondre d'ouvirir le post si la réponse est déjà donnée.

Be happy , by
Tao

vendredi 13 janvier 2006 à 16:25:21 | Re : Enumération d'une ArrayList à deux colonnes

kbalevil

Ok, merci.

Pour les différence entre String et string, Byte et byte ...
Il n'y en a pas, ceux avec les minuscules sont des alias des system.String ... L'avantage qu'ils ont ceci dit, c'est leur meilleure visibilité dans le code vue leur couleur et le fait qu'ils soit en gras ou non (Référence ou valeur)

Voilà

Merci encore.




Cette discussion est classée dans : tableau, arraylist, colonne, tab, entrainements


Répondre à ce message

Sujets en rapport avec ce message

tableau de caractere et d entier [ par Ethan75 ] Bonjour à tous,je me heurte a un probleme en C, je prend en entrée en parametre un tableau du style ((-2,0)(4,5)(10,-34).....)et je souhaiterais à pa Decoupe le contenu d'un txt dans un tableau ! [ par MTKMTKMTK ] Bonjour a tous , auriez vus un ptit code pour decouper un texte dans un txt , et chaque lettre du txt serai serai dans un tableaupar ex:contenu du txt [.NET] [C#] Datagrid et ArrayList [ par audweiller ] Bonjour, J'aimerais réussir à remplir un datagrid à l'aide d'un arrayList en C#.J'ai essayer le code suivant : dgProduits.DataSource = produits; mais Problème avec ArrayList [ par emmanuel9 ] Bonjour à tous, J'ai une arraylist de Personne et en faite a partir de cette ArrayList je veux créez un tableau d'entier avec les id des personnes m DATAGRID remplir avec un tableau ??? [ par petitelarve ] Bonjour, je rempli un tableau a 2dimensions et je souhaite qu'il s'affiche trié  sur l'une des colonnes.N'ayant pas trouvé somment trier un tableau a retourner un tableau [ par maxelpiratos ] bonjour, je débute en C# et j'ai un soucis tout simple : je n'arrive pas à retourner un tableau dans une fonction :/voilà le problème : public <FONT c Envoyer un tableau string via les sockets [ par moihenry ] Bonjour, j'ai un tableau du genre : string[] tab = new string[] { "test","test0","test1" }; Comment je dois faire pour l'envoyer par les sockets, pa Arraylist et assignement de valeur [ par CyrVB ] Voila, Je connais le C, l'assembleur, le PHP, le Pascal, mais disons le clairement je n y connais rien de rien de rien en C#, j'ai vraiment l'iimpr tableau [ par gazalii ] bonjour j'ai un petit probleme j'ai cree dans mon application des checkbox dynamiques voila comment j'ai fait tab = new ArrayList();            for(in controller le remplissage d'un tableau [ par mathmax ] Bonjour,j'ai dans ma classe, une propriété de type arraylist. Je voudrais que l'utilisateur de la classe ne puisse compléter cette propriété (à l'aide


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales