Trouver l'index d'une array multidimensionnel [Résolu]

Messages postés
100
Date d'inscription
samedi 3 mai 2008
Dernière intervention
9 mars 2011
- - Dernière réponse : belette321
Messages postés
100
Date d'inscription
samedi 3 mai 2008
Dernière intervention
9 mars 2011
- 9 mars 2011 à 04:37
Bonjour, Bonsoir, je cherche une façons de trouver l'index de chaque item dans un array multidimensionnel.

Je donne un exemple fictif pour montrer se que je veut dire:
  int[,] Map = new int[x, y];
  foreach (int Texture in Map)
   {
   x = Texture.GetIndex(0); // returns x index
   y = Texture.GetIndex(1); // returns y index
   //Pu
is utilisation des valeur x et y..
}

Voici un second exemple fictif:

int[,] Map = new int[x, y];
foreach (int Texture in Map)
{
var x Map.Select((Texture, index, index2)> new
{x index, y index2}.Where(item == Texture).First().Position);
var y Map.Select((Texture, index, index2)> new
{x index, y index2}.Where(item == Texture).First().Position);
}

Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
100
Date d'inscription
samedi 3 mai 2008
Dernière intervention
9 mars 2011
3
Merci
Ummm j'ai mieu ! Nouvelle class > "Object2D.cs"
public class  Object2D
    {
        public  int X;
        public  int Y;
        public  int Item;

        public Object2D(int x, int y, int item)
        {
            X = x;
            Y = y;
            Item = item;
        }
    }


Je change le int[,] de Map pour une definition telle que :
  foreach (string Line in Lines)
            {
                Line2 = Line.Split(",".ToArray());
                
                foreach (string TIL in Line2)
                {
                    Map[x2,y2] = new Object2D(x2, y2, int.Parse(TIL));
                    y2++;
                }
                x2++;
                y2 = 0;
            }
            return Map;

Je mets pas tout les detail, le reste du code est plutot compliquer tout sa pour dire que lors de la definition de chaque valeur dans map je leur accord une valeur x, y et on utilise comme cela:

   foreach (Object2D Texture in Map)
            {
                int x = Texture.X;
                int y = Texture.Y;
                int item = Texture.Item;
}


Voilla merci quand meme :)

Merci belette321 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de belette321
Messages postés
100
Date d'inscription
samedi 3 mai 2008
Dernière intervention
9 mars 2011
0
Merci
Merci de votre futur aide :)
Commenter la réponse de belette321
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonjour,

C'est effectivement une question pertinente sur laquelle je ne me suis jamais posé car je ne me souviens pas avoir déjà utilisé un jour les tableaux multi-dimensionnels (à la limite les int[][] mais pas int[,]).

J'ai trouvé une réponse que je partage avec toi ici.
Il semblerait que le code suivant réponde à ta question:
int[,] map = new int[10, 20];
for (int x = 0; x < map.GetLength(1); x++)
{
  for (int y = 0; y < map.GetLength(0); y++)
  {
    // A toi de jouer...
  }
}

Note: j'ai peut-être inversé le x et y.

Tu trouveras aussi des choses ici.

Bon développement.

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
100
Date d'inscription
samedi 3 mai 2008
Dernière intervention
9 mars 2011
0
Merci
Bonjour,
J'avais déjà trouver ce code sur un autre site mais merci quand même :)

Sauf que se que tu fait ses trouver la hauteur et la largeur de "Map" au complet, se qui ne mes pas vraiment utile (Je connais déjà la taille), enfaite je cherche la position x, y de "Texture".

A se que j'ai lu je crois que sais faisable par LINQ mais étant habituer au 3.0 de Framework, je suis pas très familier avec le LINQ alors je me remets entre les main d'experts...

Merci. :D
Commenter la réponse de belette321
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
J'aimerais bien aider mais je comprends pas le problème ^^
Quel est le souci avec la solution de billou_13 ?
Il ne cherche pas les dimensions du tableau Map, il parcourt l'ensemble des données qu'il contient, de la même manière que tu le fais avec ton foreach.

Peut être qu'en mettant le problème dans le contexte je comprendrai ce que tu cherches réellement à faire ;)
Commenter la réponse de cs_jopop
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
Bonsoir,

Sinon, tu as toujours la solution d'utiliser le tableau de tableau:
int[][] map = new int[n][];


C'est moins élégant mais tu auras moins de problème pour faire ce que tu souhaites....

Enfin, c'est à toi de voir mais dans tous les cas, la réponse m'intéresse !

Bon courage,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.