C# 定义一个迭代器函数
时间: 2024-04-09 13:24:04 浏览: 13
在C#中,可以使用迭代器函数来定义一个能够返回一个序列的方法。迭代器函数使用yield关键字来指示每次返回一个元素,并且在下一次调用时从上一次离开的地方继续执行。
下面是一个示例代码,展示了如何定义一个迭代器函数:
```csharp
using System;
using System.Collections;
public class MyIterator : IEnumerable
{
private int[] numbers;
public MyIterator(int[] numbers)
{
this.numbers = numbers;
}
public IEnumerator GetEnumerator()
{
for (int i = 0; i < numbers.Length; i++)
{
yield return numbers[i];
}
}
}
public class Program
{
public static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 4, 5 };
MyIterator iterator = new MyIterator(numbers);
foreach (int number in iterator)
{
Console.WriteLine(number);
}
}
}
```
在上面的示例中,我们定义了一个名为MyIterator的类,它实现了IEnumerable接口。该类包含一个整数数组和一个GetEnumerator方法。在GetEnumerator方法中,我们使用yield return语句来逐个返回数组中的元素。
在Main方法中,我们创建了一个MyIterator对象,并使用foreach循环来遍历迭代器函数返回的序列,并打印每个元素的值。