C# algorithme pour générer de la hiérarchie

J'ai un fichier texte qui ressemble à ceci:

{ Id = 1, ParentId = 0, Position = 0, Title = "root" }
{ Id = 2, ParentId = 1, Position = 0, Title = "child 1" }
{ Id = 3, ParentId = 1, Position = 1, Title = "child 2" }
{ Id = 4, ParentId = 1, Position = 2, Title = "child 3" }
{ Id = 5, ParentId = 4, Position = 0, Title = "grandchild 1" }

Je suis à la recherche d'un générique de C# algorithme qui permettra de créer une hiérarchie d'objets à partir de ce. Un "Hiérarchiser" de la fonction, si vous voulez, qui transforme ces données en une hiérarchie d'objets.

Des idées?

modifier j'ai déjà analysé le fichier .NET objets:

class Node
{
    public int Id { get; }
    public int ParentId { get; }
    public int Position { get; }
    public string Title { get; }
}

Maintenant j'ai besoin de disposer les objets dans un objet graphique.

  • Vous avez déjà le code qui gère l'analyse de ce fichier texte?
  • Je ne vois pas ce qui rend l'élément { Id = 5 ... } un petit-enfant. Un petit-enfant doit avoir l'un des enfants en tant que parent, mais il a le même parent que tous les autres enfants. Ne devriez pas son ParentId être 2, 3 ou 4? Je suis aussi dans le flou sur ce que vous avez besoin de la "Position" pour. Peut-être qu'il se réfère à la commande des enfants de gauche à droite de la mode, et vous avez besoin de le préciser explicitement?
  • Je suppose que la propriété position des commandes les enfants de chaque parent.
  • AHelps, de ma faute, que c'était une faute de frappe. J'ai mis à jour le post.
  • pbz, oui, j'ai déjà le code pour gérer l'analyse du fichier.