迭代器是一种可以枚举集合对象的机制,它可以使代码更加简洁高效。在C#中,我们可以通过在方法前添加yield关键字来定义一个迭代器,并使用foreach语句来枚举集合对象。以下是一个简单的示例代码,演示了如何使用迭代器:
using System;
using System.Collections;
public class MyList<T> : IEnumerable
{
private T[] items;
public MyList()
{
items = new T[4];
}
public void Add(T item)
{
if(items.Length == Count)
{
Array.Resize(ref items, Count * 2);
}
items[Count++] = item;
}
public int Count { get; private set; }
public IEnumerator GetEnumerator()
{
for(int i=0; i<Count; i++)
{
yield return items[i];
}
}
}
class Program
{
static void Main(string[] args)
{
MyList<int> list = new MyList<int>();
list.Add(1);
list.Add(2);
list.Add(3);
foreach(int i in list)
{
Console.WriteLine(i);
}
}
}
在这个示例中,我们先定义了一个名为MyList的类,并在其中实现Add()和GetEnumerator()方法。Add方法用于向集合中添加元素,GetEnumerator方法则是迭代器方法,返回值为IEnumerator类型,其中yield return语句用于返回集合中的每个元素。最后,我们在Main方法中创建了一个MyList实例并使用foreach语句来枚举集合中的元素。
希望这个示例能够帮助你理解迭代器的使用方法。如果你有任何其他疑问,请随时提出。