Я провел большое исследование на этом форуме и нашел много "решений", но ни одно из них не работает.Может быть, моя ситуация немного отличается, и я, может быть, кто-то может увидеть, в чем проблема.Мне нужно удалить каждый элемент Node, который имеет «значение» меньше заданного (kruvis).
public void Delete()
{
if (Start == null) return;
if (Start.Next == null)
{
Start = null;
return;
}
if (Current.Next == null)
{
Current = null;
}
Node temp = Start;
while (temp.Next.Next != null)
{
if (temp.Next == Current)
{
temp.Next = Current.Next;
Current = temp;
return;
}
temp = temp.Next;
}
}
В другом классе есть другая функция (цикл в функции)
for (MenesioAgentai.Pradzia(); MenesioAgentai.ArYra(); MenesioAgentai.Sekantis())
{
if (MenesioAgentai.GautiT().Kruvis <= kruvis)
{
kruvioSuma += MenesioAgentai.GautiT().Kruvis;
PasalintiAgentoPrenumeratorius(pren, MenesioAgentai.GautiT());
MenesioAgentai.Delete();
}
}
Проблема в том, что первый и последний элемент не удаляются в классе NodeList. У меня есть 3 узла. НачалоКонец, Текущий.(и запечатанный класс Node с данными T и Node Next)