How can I get the n-th element of a LinkedList instance? Is there a built-in way or I might need to introduce my own implementation? For example an extension method?
Thanks
The ElementAt
extension method will do it:
// This is 0-based of course
var value = linkedList.ElementAt(n);
Don't forget this is an O(n) operation because LinkedList<T>
doesn't provide any more efficient way of accessing an item by index. If you need to do this regularly, it suggests that you shouldn't be using a linked list to start with.
You can use the ElementAt() enumerable extension method. The reason LinkedList doesn't support random access natively is because it's a rather inefficient operation for the data structure. If you're going to be doing it often you should think about using a more appropriate data structure.
You can do it with LINQ as in list.ElementAt(n)
or list.Skip(n - 1).First()
, but if you find yourself making indexed access into a linked list you are probably doing something wrong (linked lists do not efficiently support this operation). Perhaps another data structure would be more appropriate?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With