Avatar ·

C#中yield关键字的作用是什么?如何使用yield return和yield break?

大家好!我刚开始学习C#,遇到了`yield`关键字。老实说,我不太明白它的作用以及如何正确使用。 我看到一些例子中,`yield return`用在返回`IEnumerable`或`IEnumerable`的方法里。但我有两个问题: 1. 普通返回集合(例如通过`return`返回`List`)和使用`yield return`有什么区别? 2. 在真实项目中,什么时候真正需要它,而不仅仅是在教学示例中? 下面是我在MSDN上找到的一个例子,但我觉得它有点奇怪: ```csharp static IEnumerable GetNumbers() { for (int i = 0; i < 10; i++) { yield return i; } } ``` 为什么不能直接这样写? ```csharp static List GetNumbers() { List list = new List(); for (int i = 0; i < 10; i++) { list.Add(i); } return list; } ``` 结果看起来是一样的——我们得