如何获取链接列表中的第 n 个元素<T>?



如何获取 LinkedList 实例的第 n 个元素?是否有内置方法,或者我可能需要引入自己的实现?例如扩展方法?

谢谢

ElementAt扩展方法将执行此操作:

// This is 0-based of course
var value = linkedList.ElementAt(n);

不要忘记这是一个 O(n) 操作,因为LinkedList<T>没有提供任何更有效的按索引访问项目的方法。如果您需要定期执行此操作,则建议您不应该首先使用链表。

您可以使用 ElementAt() 可枚举扩展方法。LinkedList 本身不支持随机访问的原因是因为它对数据结构的操作效率相当低下。如果你要经常这样做,你应该考虑使用更合适的数据结构。

您可以使用 LINQ 执行此操作,就像在 list.ElementAt(n)list.Skip(n - 1).First() 中一样,但是如果您发现自己对链表进行索引访问,则可能做错了什么(链表不能有效地支持此操作)。也许另一种数据结构更合适?

我需要获取列表的第二个元素(根据第二个更新第 1 项的值)

假设您正在采取必要的步骤来确保您确实有两个项目,您可以简单地这样做:

list.First.Next.Value

相关内容

  • 没有找到相关文章

最新更新