Arraylist et assignement de valeur

CyrVB Messages postés 26 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 21 mars 2006 - 28 janv. 2006 à 19:11
 Utilisateur anonyme - 29 janv. 2006 à 12:12
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'iimpression d avoir
loupe un episode ;)



Je programme un petit truc pour comprendre comment ca marche en C# et j ai deja 2 petits problemes



Voila j'ai 2 questions.




1) int[,] tab = new int[8000000, 16]; Pour le moment ca marche, mais je
prefererai une arraylist, ca a l'air plus flexible, mais je n ai rien
trouve sur une arraylist multi dimensionnel.

Comment faire ?



2)

char[] delimiterChars = { ',', ' ' };

while (sLine != null) // Lecture du fichier

{


sLine = objReader.ReadLine(); // Lit une ligne du fichier


if (sLine != null) // si pas fin du fichier


{



string[] words = sLine.Split(delimiterChars); // On split et on mets
dans un tableau temporaire

y = 0;


foreach (string s in words) // Pour chaque object dans words

{


tab[x, y] = Convert.ToInt32(s); // je convertis et j assigne dans
tab[x,y]


y++;

}

x++;

}

}

objReader.Close();



Ca marche mais ca me parait un peu long et barbare d'utiliser une variable temporaire, et une boucle.

Je pense qu'un truc comme ca doit etre realisable mais je sais pas comment faire



tab[x, ] = Convert.ToInt32(sLine.Split(delimiterChars));



Ou un truc dans le genre ;)



Merci pour votre aide

2 réponses

cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
28 janv. 2006 à 19:37
Salut,
Je vais tenter de répondre à ta première question:
On peut voir un arraylist comme un tableau d'une dimension. Donc, un tableau de ArrayList(s) est un tableau deux dimensions :

using System.Collections; //important
//déclarations
ArrayList[] myArray =
new
ArrayList[5];

for (int i 0; i < myArray.Length; i++) myArray[i]
new
ArrayList();

//ajout
myArray[0].Add(
"salut");
myArray[3].Add(
"Le C# est super cool");

J'espère que cela t'aide...pour ta deuxième, je te conseille d'ajouter une clause try catch pour éviter d'avoir des erreurs à cause d'un fichier corrompu.
try
{
//opération risquée
}
catch(Exception e)
{
//erreur
}

etk, bonne chance

@++
0
Utilisateur anonyme
29 janv. 2006 à 12:12
Bonjour,

Juste une petite modification à ton code badrbadr.
Il n'est pas faux mais CyrVB utilisait un tableau de integer. Il vaut donc mieux utiliser une liste de integer et non une liste d'object.
Remarque: Celà existe uniquement avec le Framework 2.0

using System.Collections.Generic; // Important
// Déclarations
System.Collections.Generic.List<int>[] myArray = new System.Collections.Generic.List<int>[5];for (int i 0; i < myArray.Length; i++) myArray[i] new ArrayList();
// Ajout
myArray[0].Add(7);
myArray[3].Add(45);

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
Rejoignez-nous