我有一个节点列表,每个节点都有对其上一个节点和下一个节点的引用。我想要一个不共享下一个或上一个节点的节点列表。换句话说,是未排序的节点列表。
nodes= nodes.Where(o => !nodes.Any(oo => ReferenceEquals(oo.NextNode, o.PreviousNode)));
它抛出此异常
NodeLib.dll中发生了'System.StackOverflowException'类型的未处理异常
我不知道自己缺少什么或误会了。预先谢谢你!
答案 0 :(得分:1)
我认为您的问题是比较列表的方式,您想将列表与自身进行比较,请尝试以下操作:
var test = from i in nodes
from j in nodes.SkipWhile(j => j != i)
where i != j
select ReferenceEquals(i.NextNode, j.PreviousNode);