Suj*_* Kp 0 c# recursion yield-return
我有一段这样的代码
class Program
{
static IEnumerable<string> GetSequences(string a)
{
yield return a;
GetSequences(a + ">");
}
static void Main(string[] args)
{
foreach (var n in GetSequences(">"))
Console.Write(n + ",");
}
}
Run Code Online (Sandbox Code Playgroud)
我期待这样的输出
,>>,>>>
但事实并非如此.它只打印">".有谁知道我错过了什么?
在函数本身中使用相同的foreach:
static IEnumerable<string> GetSequences(string a)
{
yield return a;
foreach (var n in GetSequences(a + ">"))
yield return n;
}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记退出递归.