23 Stimmen

C#-Algorithmus zur Erzeugung einer Hierarchie

Ich habe eine Textdatei, die wie folgt aussieht:

{ 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" }

Ich bin auf der Suche nach einem generischen C#-Algorithmus, der daraus eine Objekthierarchie erstellt. Eine "Hierarchize"-Funktion, wenn Sie so wollen, die diese Daten in eine Objekthierarchie verwandelt.

Irgendwelche Ideen?

editar Ich habe die Datei bereits in .NET-Objekte geparst:

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

Jetzt muss ich die Objekte tatsächlich in einem Objektdiagramm anordnen.

0voto

Chris Hamons Punkte 1470

Sind Sie sicher, dass die ParentID in der letzten Zeile 1 ist? Der Titel sagt Enkelkind, aber es wäre ein Kind von "Root", wenn ich die Dinge richtig lese.

0voto

Rodolpho Brock Punkte 7717

Hier ist das Beispiel, um das @baran gebeten hat:

var lHierarchicalMenuItems = lMenuItemsFromDB.Hierarchize(0, aItem => aItem.Id, aItem => aItem.ParentId, aItem => aItem.Position);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X