У меня есть связанный список, где я храню цены на товары. Я вычислил общую сумму всех предметов, и я хочу проверить, превышает ли общая цена установленный лимит, если я хочу, чтобы удалить предметы, пока это не так.
Так что мой связанный список выглядит так
Name of item: Automobilis |Amount of said item available: 1 | Amount needed: 1 | Total price of item/s: 3000
Name of item: Kirvis |Amount of said item available: 50 | Amount needed: 2 | Total price of item/s: 200
Name of item: Piesiniai |Amount of said item available: 1 | Amount needed: 1 | Total price of item/s: 1800
Total price of all items is: 5000
Если у меня установлен лимит 4000, я хочу удалить элементы, пока он не станет меньше.
Я использую этот метод для удаления узла
static void DeleteNode(double x, LinkedList<MatchingItems> myLinkedList)
{
var node = myLinkedList.First;
while (node != null)
{
var nextNode = node.Next;
while (node.Value.FinalPrice > x)
{
myLinkedList.Remove(node);
}
node = nextNode;
}
}
Но когда я пытаюсь запустить его, выдается следующее сообщение:
Unhandled Exception: System.InvalidOperationException: The LinkedList node does not belong to current LinkedList.
at System.Collections.Generic.LinkedList`1.ValidateNode(LinkedListNode`1 node)
at System.Collections.Generic.LinkedList`1.Remove(LinkedListNode`1 node)