kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006
-
13 janv. 2006 à 10:46
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006
-
13 janv. 2006 à 16:25
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();
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 ?
taoetc
Messages postés346Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention 3 septembre 20073 13 janv. 2006 à 11:03
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 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);
}
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 13 janv. 2006 à 15:17
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 :
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 ?
taoetc
Messages postés346Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention 3 septembre 20073 13 janv. 2006 à 15:23
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.
kbalevil
Messages postés23Date d'inscriptiondimanche 17 novembre 2002StatutMembreDernière intervention11 août 2006 13 janv. 2006 à 16:25
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)