Dieser Code speichert Schleifendaten in der Datenbank, aber ich habe Leistungsprobleme, da die Daten so groß sind, spart eine große Anzahl von Datensätzen, und in diesem Fall führt die Rekursion sehr hohe Belastung für den Speicher also brauche ich eine alternative Rekursionslösung, da ich weiß, dass es sich um einen n-stufigen Baum handelt.Wie durchläuft diese Baumstruktur ohne Rekursion C#
private void ProcessLoops(LoopContainer parent, InboundLoop parentLoop)
{
foreach (var segment in parent.Segments)
{
if (segment is Loop)
{
var segmentLoop = segment as Loop;
var inboundLoop = new InboundLoop()
{
Inbound834RegisterId = RegisterId,
InboundSTId = InboundST.InboundSTId,
LoopName = segmentLoop.Specification.Name,
LoopNumber = segmentLoop.Specification.LoopId,
Sequence = _loopSequence++
};
if (parentLoop == null)
{
inboundLoop.InboundLoopId = InboundLoopService.Instance.AddInboundLoop(inboundLoop);
}
else
{
inboundLoop.ParentLoopId = parentLoop.InboundLoopId;
inboundLoop.InboundLoopId = InboundLoopService.Instance.AddInboundLoop(inboundLoop);
}
ProcessLoops(segmentLoop, inboundLoop);
}
}
}
Hallo Ori, danke für deine Antwort :), Ich habe versucht, mehrere folgende tiefe erste Algorithmen, aber ich konnte nicht mit der richtigen Struktur kommen, die Ergebnisse sind nicht richtig, so eine codierte Antwort wäre toll :) – GTarek
Erster Teil - Fertig. Zweiter Teil - muss GetByNumber implementieren. Es ist komplizierter und zeitaufwendiger Algorithmus, aber speichert Reihenfolge der Objekte. Brauchen Sie das? –