[英]How do I get the n-th element in a LinkedList<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()
,但如果你發現自己對鏈表進行索引訪問,你可能做錯了(鏈表做了)沒有有效地支持這項行動)。 也許另一種數據結構會更合適?
我需要獲取列表的第二個元素(根據第二個元素更新第一個項目的值)
假設您正在采取必要的步驟以確保您有兩個項目,您可以簡單地執行此操作:
list.First.Next.Value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.