Structure hiérarchique de chaînes [Résolu]

Messages postés
16
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
14 juillet 2010
- - Dernière réponse : cs_GG29
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
- 1 mai 2010 à 11:54
Bonjour,

Je cherche une classe équivalente au TStringList de Delphi qui permette de stocker non seulement des string mais avec chacun d'entre eux un "pointeur" vers un autre TStringList (un peu à la manière du contrôle de liste arborescente de Windows). Ce n'est pas pour afficher, mais pour stocker en mémoire.

Dit autrement :

Comment stocker en mémoire une liste hiérarchique de chaînes du genre d'un dossier windows (avec des fichiers et des sous-dossiers contenant à leur tour fichiers et sous-dossier ?

A+
Jacky


_______________________________________________________________________________
Ma devise : On ne peut prolonger notre chemin de vie, mais on peut l'élargir !
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
3
Merci
Ce que tu veux c'est un arbre (Tree in English). Une petite recherche sur ton moteur de recherche favori et tu trouvera pas mal d'implémentations différentes.

Voici une version très simpliste
public class Tree<T>
{
    public Tree()
    {
        Children = new List<Tree<T>>();
    }

    public T Value {get; set; }
    public List<Tree<T>> Children {get ; private set; }
}


---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.

Dire « Merci » 3

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

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_GG29
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
3
Merci
En effet il n'existe aucune classe en dotnet.

En voici un, un peu mieux que le mien.
http://dvanderboom.wordpress.com/2008/03/15/treet-implementing-a-non-binary-tree-in-c/

Autrement sur CodePlex tu peux chercher Tree ou Data structure.

---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.

Dire « Merci » 3

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

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_GG29
Messages postés
16
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
14 juillet 2010
0
Merci
Re,

Je viens de trouver la classe System.Windows.Forms.TreeNode qui bien qu'étant à la base un "control" visuel peut très bien faire l'affaire (rien n'oblige de l'affecter à un TreeView).

J'ai donc trouvé le moyen de parvenir à mes fins, mais c'est peut-être un peu "lourd" comme solution.
Quelqu'un aurait-il un solution plus légère ?

A+
Jacky

_______________________________________________________________________________
Ma devise : On ne peut prolonger notre chemin de vie, mais on peut l'élargir !
Commenter la réponse de JABch
Messages postés
16
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
14 juillet 2010
0
Merci
Oui merci gg29,

J'ai évidemment fait une recherche avec "tree", "arbre" et "arborescence" y compris sur le présent forum.
Malheureusement je n'y trouve que des messages anciens (.net v2 au mieux) avec des exemples de code trop complexes pour le simple usage que j'ai à en faire.
Je ne parvenais pas à croire que System.Collections ne comprenne pas une telle classe. D'où ma question.

Je vais peut-être en créer une sur la base de ce que tu m'indiques ci-dessus.

A+
Jacky

______________________________________________________________________________
Ma devise : On ne peut prolonger notre chemin de vie, mais on peut l'élargir !
Commenter la réponse de JABch
Messages postés
16
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
14 juillet 2010
0
Merci
Merci encore

Jacky


______________________________________________________________________________
Ma devise : On ne peut prolonger notre chemin de vie, mais on peut l'élargir !
Visitez mon site Internet
Commenter la réponse de JABch
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
0
Merci
http://ngenerics.codeplex.com/


---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
Commenter la réponse de cs_GG29
Messages postés
16
Date d'inscription
dimanche 22 novembre 2009
Statut
Membre
Dernière intervention
14 juillet 2010
0
Merci
Ok, merci.
Pour ton info, ils ont démnagé
ici.

A+
Jacky


______________________________________________________________________________
Ma devise : On ne peut prolonger notre chemin de vie, mais on peut l'élargir !
Visitez mon site Internet
Commenter la réponse de JABch
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
0
Merci
Faut que je pense à vérifier mes favoris de temps en temps.
merci.

---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
Commenter la réponse de cs_GG29