gpt4 book ai didi

c# - 在执行 IEnumerable 方法之前,方法如何在 C# 中返回结果?

转载 作者:太空宇宙 更新时间:2023-11-03 18:02:05 24 4
gpt4 key购买 nike

在显示 MyList 中大于 2 的数字的代码块下方。

using System;
using System.Collections.Generic;
namespace CSharpBasics
{
internal class Program
{
private static List<int> MyList = new List<int>();
private static void Main(string[] args)
{
MyList.Add(1);
MyList.Add(2);
MyList.Add(3);
MyList.Add(4);
var test = FilterWithYield();
foreach (int i in test)
{
Console.WriteLine(i);
}
Console.ReadLine();
}
private static IEnumerable<int> FilterWithYield()
{
foreach (int i in MyList)
{
if (i > 2)
{
yield return i;
}
}
}
}
}

现在,当我们将断点设置为行 foreach (int i in test) , 在执行 之前 foreach 循环 , test变量的结果来自 FilterWithYield() .这怎么可能?我的理解是,直到迭代开始 IEnumerable 方法才执行。

我在这里遗漏了什么吗?

enter image description here

谢谢。

最佳答案

查看警告 - Expanding the Result View will enumerate the IEnumerable…通过查看结果 View ,您可以枚举值。

关于c# - 在执行 IEnumerable<T> 方法之前,方法如何在 C# 中返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53651754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com