Re: Swap nodes in a linked list

Frans Bouma <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.clr
Message-ID <00da01c85ce2$df75e930$9e61bb90$@nl>
> > However having the index, doesn't
> > that mean that you can simply move to the previous node using that index,
> and
> > then place the removed node in front of that? (so first determine previous
> > node (ElementAt(n-1)) then, addBefore(previousNode)
>
> If I understand it correctly, Enumerable.ElementAt in conjunction with
> a LinkedList will not give you the LinkedListNode, but the actual
> element of the list. Therefore, you can't easily get to the previous
> node from an index using Enumerable.ElementAt.
>
> Using LinkedList.Find to get the node with the element retrieved via
> Enumerable.ElementAt is quite inefficient, because you enumerate the
> list twice; also, it won't work correctly if the list contains
> duplicate values. Therefore, I'd suggest looping over the list _nodes_
> (not its elements) yourself until the node at the specified position
> is found, then you automatically have all the possibilities. (It's not
> as short, but efficient. There doesn't seem to be a simple way to get
> an enumerator for the nodes in a LinkedList, or at least I can't see
> one.)

        Ah, that makes sense. I couldn't reach my .NET 3.5 docs as they are on
another box which wasn't booted up, so I assumed ElementAt() returned the
linkedlistnode.

                FB

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.