【发布时间】:2018-11-08 19:03:16
【问题描述】:
我有一个节点列表,每个节点都有对其前一个节点和下一个节点的引用。我想要一个不共享下一个或以前的节点的列表。换句话说,未排序的节点列表。
nodes= nodes.Where(o => !nodes.Any(oo => ReferenceEquals(oo.NextNode, o.PreviousNode)));
抛出这个异常
NodeLib.dll 中出现“System.StackOverflowException”类型的未处理异常
我不知道我错过了什么或误解了什么。提前谢谢!
【问题讨论】:
-
可能是由枚举器或属性的实现引起的。没有更多信息很难说。
-
这感觉像是某个地方的递归问题,即您的一个节点正在引用
PreviousNode引用PreviousNode,然后最终引用原始节点。不过,目前只是猜测。 -
@marsze 怎么会这样?如果我错了,请纠正我,但我只是比较节点是否通过引用共享。每次运行程序时,我都会在不同的 dll 中得到异常。它并不总是在
NodeLib.dll -
你的
nodes对象是什么类型的? -
发布您的节点类代码以及设置节点列表结构的代码可能会有所帮助