如何生成嵌套的 IEnumerable?

c0r*_*0rd 3 c# methods yield

我知道如何在具有返回值的方法中产生值IENumerable

public IEnumerable<int> GetDigits()
{
    yield return 1;
    yield return 1;
    yield return 1;
}
Run Code Online (Sandbox Code Playgroud)

但是嵌套的正确语法是怎样的IEnumerable<IEnumerable<int>>

public IEnumerable<IEnumerable<int>> GetNestedDigits()
{
    yield return yield return 1; //??
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*eth 5

您不能直接嵌套yield return语句。您必须创建另一种方法:

public IEnumerable<IEnumerable<int>> GetNestedDigits()
{
    yield return GetNestedEnumerable();
}

public IEnumerable<int> GetNestedEnumerable()
{
    yield return 1;
}
Run Code Online (Sandbox Code Playgroud)