c# - yield return 语句如何不返回任何元素?

标签 c# methods iterator enumerator yield-return

我正在练习删除二叉搜索树上的节点,我使用空模式为空链接创建了一个特殊类型 (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/

相关文章:

c# - 使用 Entity Framework 6 创建计算字段

java - Java 中的泛型方法

Java ArrayList 的递归合并排序

java - Groovy/POI 在不同系统上返回不同迭代器

c++ - C++ STL 数组的迭代器大小

c# - ASP.NET GridView 中的复选框未选中

c# - 一个泛型类型参数,返回类型不同的泛型?

c# - 将 DataVizualisation 图表控件附加到文本文件

java记录行、列位置的方法

java - ConcurrentModificationException 使用列表迭代器 java 删除元素时