comment parcourir un tableau de dimension inconnue?
2 réponses
Bpbmorane
Bonjour,
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau
generique c'est a dire que je puisse parcourir toutes les dimension dun
tableau a 2D mais que cette meme algo puisse parcourir un tableau a 3,4,5,6
...
vous l'avez compris mon probleme etant que je ne connais rien du tableau
avant de le parcourir. je ne peux determiner a l'avance sa taille et sa
dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des
jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sebastien Curutchet
Bpbmorane a écrit :
Bonjour,
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau generique c'est a dire que je puisse parcourir toutes les dimension dun tableau a 2D mais que cette meme algo puisse parcourir un tableau a 3,4,5,6 ...
vous l'avez compris mon probleme etant que je ne connais rien du tableau avant de le parcourir. je ne peux determiner a l'avance sa taille et sa dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
Bonjour,
J'ai une piste de solution : à valider et tester :
if (pArray != null) { intIndiceArray = new int[pArray.Rank];
while(blnContinue) { blnContinue = false; for(int i = 0 ; !blnContinue && i < intIndiceArray.Length ; i++) { if (intIndiceArray[i] < pArray.GetLength(i)) blnContinue = true; }
if (!blnContinue) break;
oCell = pArray.GetValue(intIndiceArray);
if (oCell is Array) ShowArray(oCell as Array); else Console.WriteLine(pArray.GetValue(intIndiceArray));
for(int i = intIndiceArray.Length -1 ; i >= 0 ; i--) { if (intIndiceArray[i] < pArray.GetLength(i) - 1) { intIndiceArray[i]++; blnContinue = true; break; } else if (i == 0) { blnContinue = false; break; } else { intIndiceArray[i] = 0; blnContinue = true; } } } } }
Bpbmorane a écrit :
Bonjour,
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau
generique c'est a dire que je puisse parcourir toutes les dimension dun
tableau a 2D mais que cette meme algo puisse parcourir un tableau a 3,4,5,6
...
vous l'avez compris mon probleme etant que je ne connais rien du tableau
avant de le parcourir. je ne peux determiner a l'avance sa taille et sa
dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des
jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
Bonjour,
J'ai une piste de solution : à valider et tester :
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau generique c'est a dire que je puisse parcourir toutes les dimension dun tableau a 2D mais que cette meme algo puisse parcourir un tableau a 3,4,5,6 ...
vous l'avez compris mon probleme etant que je ne connais rien du tableau avant de le parcourir. je ne peux determiner a l'avance sa taille et sa dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
Bonjour,
J'ai une piste de solution : à valider et tester :
if (pArray != null) { intIndiceArray = new int[pArray.Rank];
while(blnContinue) { blnContinue = false; for(int i = 0 ; !blnContinue && i < intIndiceArray.Length ; i++) { if (intIndiceArray[i] < pArray.GetLength(i)) blnContinue = true; }
if (!blnContinue) break;
oCell = pArray.GetValue(intIndiceArray);
if (oCell is Array) ShowArray(oCell as Array); else Console.WriteLine(pArray.GetValue(intIndiceArray));
for(int i = intIndiceArray.Length -1 ; i >= 0 ; i--) { if (intIndiceArray[i] < pArray.GetLength(i) - 1) { intIndiceArray[i]++; blnContinue = true; break; } else if (i == 0) { blnContinue = false; break; } else { intIndiceArray[i] = 0; blnContinue = true; } } } } }
Faust
Array implémentant IEnumerator: en utilisant foreach chaque dimension du tableau étant lui même un array, tu peut lire ton tableau en récursif
avec foreach, tu prend chaque dimension de ton tableau si cet element est un tableau, tu refais un foreach sinon tu as atteind la profondeur max de la branche en cours
/_Bpbmorane_ a exprimé avec précision/ :
Bonjour,
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau generique c'est a dire que je puisse parcourir toutes les dimension dun tableau a 2D mais que cette meme algo puisse parcourir un tableau a 3,4,5,6 ...
vous l'avez compris mon probleme etant que je ne connais rien du tableau avant de le parcourir. je ne peux determiner a l'avance sa taille et sa dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
-- Faust "Une âme en peine peut en cacher une autre"
Array implémentant IEnumerator: en utilisant foreach
chaque dimension du tableau étant lui même un array, tu peut lire ton
tableau en récursif
avec foreach, tu prend chaque dimension de ton tableau
si cet element est un tableau, tu refais un foreach sinon tu as atteind
la profondeur max de la branche en cours
/_Bpbmorane_ a exprimé avec précision/ :
Bonjour,
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau generique
c'est a dire que je puisse parcourir toutes les dimension dun tableau a 2D
mais que cette meme algo puisse parcourir un tableau a 3,4,5,6 ...
vous l'avez compris mon probleme etant que je ne connais rien du tableau
avant de le parcourir. je ne peux determiner a l'avance sa taille et sa
dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des
jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
--
Faust
"Une âme en peine peut en cacher une autre"
Array implémentant IEnumerator: en utilisant foreach chaque dimension du tableau étant lui même un array, tu peut lire ton tableau en récursif
avec foreach, tu prend chaque dimension de ton tableau si cet element est un tableau, tu refais un foreach sinon tu as atteind la profondeur max de la branche en cours
/_Bpbmorane_ a exprimé avec précision/ :
Bonjour,
J'aimerais savoir s'il y a un moyen de faire un parcours de tableau generique c'est a dire que je puisse parcourir toutes les dimension dun tableau a 2D mais que cette meme algo puisse parcourir un tableau a 3,4,5,6 ...
vous l'avez compris mon probleme etant que je ne connais rien du tableau avant de le parcourir. je ne peux determiner a l'avance sa taille et sa dimension(je ne l'ai qu'au moment du Array.rank), de meme je peux avoir des jagged array donc dimensions diferentes par ligne.
Existe il un moyen simple de resoudre ce probleme?
-- Faust "Une âme en peine peut en cacher une autre"