Ich versuche, Elemente in meiner Liste zu verschieben, aber wenn ich mit der letzten Option vergleiche, gehe ich aus, bevor ich die Elemente in meine Verschiebe-Liste verschiebe. Gibt es eine Möglichkeit, dies zu tun, bevor der Knoten am Ende platziert wird und nicht zum Verschieben der Elemente durchlaufen werden kann?Verschieben von Elementen in verknüpfter Liste C# .NET
LinkedList<BD> list = new LinkedList<BD>(b[arg].Values);
LinkedListNode<BD> node, terminator, next = null;
List<LinkedListNode<BD>> move = new List<LinkedListNode<BD>>();
terminator = list.First;
node = next = list.Last;
while (next != null && next != terminator)
{
node = next;
next = next.Previous;
if (IDs.Contains(node.Value.Id))
{
move.Add(node);
list.Remove(node);
}
else
{
foreach (var item in move)
{
list.AddBefore(node, item);
node = node.Previous;
}
move.Clear();
}
}
Bearbeiten Sie Ihre Frage, wählen Sie den Code Teil und drücken Sie die kleine "Code" -Taste über dem Editor. Das macht den Code viel einfacher zu lesen. – Zyphrax
@ Zyphrax: tat es für sie. –
@ Bruce227: Können Sie vielleicht beschreiben, was Sie erreichen möchten? Möchten Sie die Knoten analysieren, prüfen, ob die DocumentVersionId eines Knotens in der ID-Liste enthalten ist, und diesen Knoten dann ganz nach vorne in die verknüpfte Liste verschieben? – Zyphrax