Bonjour à tous,
j’aimerais faire une liste d’une liste. Je m’explique:
Pour faire une liste, via using System.Collections.Generic on peut etablir un public List<int> MaListe = new List <int>();
Le int est un exemple on peut bien entendu effectuer cette opération avec des string des float etc
Mais dans la même idée j’aurais voulu avoir la possibilité de créér une liste<List> pour pouvoir ajouter des Listes à cette liste.
En effet, actuellement à l’étape de programmation de déplacements autonomes, en gros je regroupe les différentes possibilités de chemins (Chemin a: aller vers pivot1 puis pivot2 puis cible, chemin b: ... chemin x:)
Donc chacun des chemins dispose de plusieurs transform.
Le programme établissant lui même le nombre de pivots utilisés par chemins ainsi que le nombre même de chemins possible.
J’aurais voulu par conséquent créer une Liste<List> à laquelle on ajouterait une multitude de List<Transform> Car les listes offrent la possibilité d’ajouter autant de choses que l’on veut (contrairement aux Arrays) sans savoir à l’avance quelle sera sa taille
[RESOLU]Faire une liste d’une liste
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
[RESOLU]Faire une liste d’une liste
Dernière édition par Judokalex le 02 Déc 2018 17:33, édité 1 fois.
Re: [MY - AL]Faire une liste d’une liste
Salut,
Pour répondre basiquement à ton problème, tu peux très bien faire des liste de liste de liste, ...
Après selon ton niveau en programmation, je te conseillerais de passer par des classes ou des structures pour stocker tes informations et éviter les List<List<...>> qui ne sont pas très lisibles et qui peuvent être vite limitant.
Pour répondre basiquement à ton problème, tu peux très bien faire des liste de liste de liste, ...
Code : Tout sélectionner
List<List<Transform>> path = new List<List<Transform>>();
Code : Tout sélectionner
public class Path {
public List<Transform> elements = new List<Transform>();
// You can add some properties like interest of the path, the name, ...
public float intereset = 0f;
}
List<Path> paths = new List<Path>();
Re: [MY - AL]Faire une liste d’une liste
Nickel ça merci à toi! Et avec la premiere methode comment accèdes tu à une valeur transform de la liste secondaire de la liste principale?
path[0[0]] ça fonctionne?
path[0[0]] ça fonctionne?
Re: [MY - AL]Faire une liste d’une liste
Hello,
Ceci dit, j'opterais pour le conseil énoncé par Simonj avec la seconde approche.
Je dirais plutôt path[v1][v2]
Ceci dit, j'opterais pour le conseil énoncé par Simonj avec la seconde approche.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: [MY - AL]Faire une liste d’une liste
D’accord je vais suivre vos conseils dans ce cas là mais je n’ai jamais eu l’occasion de faire de classe avec des listes, j’ai du mal à imagner comment rendre fonctionnel la classe avec la liste
Re: [MY - AL]Faire une liste d’une liste
Effectivement comme dit Max, c'est bien paths[0][0] si tu veux accéder au premier élément de la première liste.
Pour l'histoire des classes, ça deviens beaucoup plus clair à la lecture car pour accéder au premier élément de la première liste, tu fais paths[0].elements[0].
Si tu veux savoir d'autres choses sur comment mettre ça en place, n'hésites pas à poser tes questions car je ne sais pas ton niveau de connaissance donc difficile d'évaluer ce qui te bloque. Si ton problème est résolu et que tu ne souhaites pas aller plus loin, tu peux passer ton post en [RESOLU]
Pour l'histoire des classes, ça deviens beaucoup plus clair à la lecture car pour accéder au premier élément de la première liste, tu fais paths[0].elements[0].
Si tu veux savoir d'autres choses sur comment mettre ça en place, n'hésites pas à poser tes questions car je ne sais pas ton niveau de connaissance donc difficile d'évaluer ce qui te bloque. Si ton problème est résolu et que tu ne souhaites pas aller plus loin, tu peux passer ton post en [RESOLU]
Re: [MY - AL]Faire une liste d’une liste
Merci à vous en tout cas, ça m’a permis de me forger un peu plus sur l’utilisation des classes que je n’avais pas eu l’occasion de me servir jusqu’à maintenant.
Par ailleurs, j’ai pu contourner le probleme d’une maniere différente:
J’ai une liste qui etablie les differents vector3 de la solution nouvellement trouvée, à ce moment là je calcule la distance totale de ce nouveau chemin et je la compare à la distance du chemin le plus rapide trouvé
Si c’est plus rapide grace à cette nouvelle solution, j’enregistre la distance dans Meilleure distance et j’enrengistre chacune des positions dans une liste stockant le chemin le plus rapide!
Je reviendrai surement avec d’autres suestions, merci pour votre contribution!
Par ailleurs, j’ai pu contourner le probleme d’une maniere différente:
J’ai une liste qui etablie les differents vector3 de la solution nouvellement trouvée, à ce moment là je calcule la distance totale de ce nouveau chemin et je la compare à la distance du chemin le plus rapide trouvé
Si c’est plus rapide grace à cette nouvelle solution, j’enregistre la distance dans Meilleure distance et j’enrengistre chacune des positions dans une liste stockant le chemin le plus rapide!
Je reviendrai surement avec d’autres suestions, merci pour votre contribution!