我正在练习删除二叉搜索树上的节点,我使用空模式为空链接创建了一个特殊类型 (NullNode),因此我可以向“空”添加一些理想的行为类型。 Node 类型和Nullnode 类型共享相同的INode 接口(interface),其中包括递归方法。
INode 接口(interface)包括 IEnumerable 递归方法,用于 PreOrder、InOrder 和 PostOrder 遍历,但我不希望 NullNode 返回任何元素(通过 yield return 语句)。
我能做什么?
我知道我可以使用一个不可能的 if 条件,然后在方法中放一个 yield return 语句,但我认为这个解决方案不好。应该有更好的方法。
最佳答案
使用 yield break 语句:
private static IEnumerable<INode> YieldEmpty()
{
yield break;
}
关于c# - yield return 语句如何不返回任何元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13213130/