foreach循环中奇怪的IEnumerable行为

GET*_*Tah 2 c# ienumerable foreach iterator yield-return

我有以下方法:

public IEnumerable<object> GetParameters(Context context)
{
    yield return new[] { 1, 2, 3 };
}
Run Code Online (Sandbox Code Playgroud)

当我遍历此枚举时:

foreach (var parameter in GetParameters())
{
    // Do something here with parameter
}
Run Code Online (Sandbox Code Playgroud)

我希望参数1在第一个循环,2在第二个和3第三个,但事实并非如此:(

在此输入图像描述

parameter 是一个包含所有值的数组!

我在这里失踪了什么?

Bry*_*her 5

您将返回可枚举数组的单个实例.

你要:

yield return 1;
yield return 2;
yield return 3;
Run Code Online (Sandbox Code Playgroud)