我该如何获取LinkedList实例中的第n个元素?是否有内置的方法,或者我需要引入自己的实现?例如扩展方法?
谢谢
我该如何获取LinkedList实例中的第n个元素?是否有内置的方法,或者我需要引入自己的实现?例如扩展方法?
谢谢
ElementAt
扩展方法可以完成这个任务:
// This is 0-based of course
var value = linkedList.ElementAt(n);
不要忘记这是一个O(n)操作,因为LinkedList<T>
没有提供更有效的按索引访问项的方法。如果您需要经常执行此操作,那么建议您首先不要使用链接列表。
IList<T>
,索引操作是否必须为 O(n)
? - nawfal您可以使用LINQ来实现,如list.ElementAt(n)
或list.Skip(n - 1).First()
,但是如果您发现自己需要对链表进行索引访问,则可能存在问题(链表不支持此操作的高效性)。也许另一种数据结构更适合?
我需要获取列表的第二个元素(以根据第二个元素更新第一个项目上的值)
假设您正在采取必要的步骤确保您有两个项目,您可以简单地执行以下操作:
list.First.Next.Value