I have a LinkedList of nodes each storing a LinkedList of edges. I wanted to do something along the lines of

nodes.RemoveAll(n => n.edges.Count == 0)

But without RemoveAll there goes that. I don't understand why it doesn't have it, since other collections do. This would have to iterate through all elements too and remove only one at a time from what I understand, which wouldn't be bad performancewise for a linked list.

Now I have to do this instead:

for (LinkedListNode<MyNode> n2 = nodes.First; n2 != null; )
{
    LinkedListNode<MyNode> temp = n2.Next;
    if (n2.Value.edges.Count == 0)
        nodes.Remove(n2);
    n2 = temp;
}

While it works, it makes things seem more complicated than what they are.

Edit
Report