2017-08-26 7 views
0

Existe-t-il un moyen d'accomplir une structure de données arborescente générique dans laquelle les nœuds de chaque niveau hiérarchique peuvent contenir des objets de charge utile différents (et typés)? Je voudrais être en mesure d'interroger l'arbre avec une clé et de retrouver un résultat tapé, pas un objet. J'ai essayé avec des interfaces génériques mais il me semble que j'ai encore besoin d'écrire des routines de requête séparées pour chaque type de charge utile. Une solution générique serait plus élégante, bien que la diffusion à partir d'une seule méthode générique soit problématique. Peut-être qu'il n'y a pas moyen?Arbre générique C# avec plusieurs types de charge utile

De même, toutes les implémentations dans CodePlex ou GitHub semblent autoriser un seul type de charge utile qui est ensuite utilisé dans tous les nœuds de l'arborescence entière. Je veux des objets de charge utile distincts à chaque niveau de hiérarchie.

Merci, Pom

+0

Si vous voulez stocker * n'importe quoi * sur n'importe quel noeud, stockez un 'objet'. Vous encourirez dans la boxe si l'objet stocké est un type de valeur, mais vous ne pouvez rien faire à moins qu'il y ait une sorte de * communalité * que vous pouvez exploiter sur les objets que vous voulez assigner à un nœud donné. – InBetween

Répondre

1

Vous pouvez créer un arbre d'objets (je sais que vous ne voulez pas, mais voir aucune autre option) et votre méthode pour interroger vous pouvez définir un type.

Par exemple, tree.Query<T>() et renvoie une liste d'éléments T.

Espérons que ça aide.