我对LinkedList<>
有疑问。
该列表有属性First
和Last
。LinkedList,First and Last
如果我将设置Last.AddNext(First)
,那么属性是否正确?
我需要一个清单,其中Last>Next = First
,但清楚地标识First
和Last
元素。
我有一个周期process.NextStep, NextStep
,但需要能够识别每个步骤(process[i]
- 所述我个工序)
.NET 2
我对LinkedList<>
有疑问。
该列表有属性First
和Last
。LinkedList,First and Last
如果我将设置Last.AddNext(First)
,那么属性是否正确?
我需要一个清单,其中Last>Next = First
,但清楚地标识First
和Last
元素。
我有一个周期process.NextStep, NextStep
,但需要能够识别每个步骤(process[i]
- 所述我个工序)
.NET 2
LinkedList<T>
不支持圆形列表。从the docs:
的
LinkedList<T>
类不支持链接,分裂,周期,或其他可以留在不一致的状态列表功能。
有没有这样的方法为LinkedListNode<T>.AddNext()
,但是我希望任何企图造成循环失败,一个例外。
你总是可以建立一个基于一个LinkedList<T>
虽然一个迭代...
(请注意,如果该列表是空的,这将失败...)
public static IEnumerable<Tuple<T, bool, bool>> IterateInCycles<T>
(LinkedList<T> source)
{
LinkedList<T> node = source.First;
while (true)
{
yield return Tuple.Create(node.Value,
node.Previous == null,
node.Next == null);
node = node.Next ?? source.First;
}
}
在每个元组如果你看到我的意思,返回序列将是(value, isFirst, isLast)
。
你的意思是你试图建立一个循环列表?我怀疑你可以用默认类做到这一点。我期望'Last.AddNext(First)'将第一个元素的副本追加到列表的末尾,但不会创建循环。 – Rup 2010-10-08 13:20:09