在C#中,可以使用迭代器來遍歷集合。迭代器是一種特殊的方法,它允許我們按順序訪問集合中的元素,而不必暴露集合的內部實現細節。
使用迭代器遍歷集合的步驟如下:
在集合類中實現一個返回迭代器的方法,通常命名為GetEnumerator(),并且返回一個實現了IEnumerable接口的迭代器對象。
在迭代器對象中,使用yield關鍵字來返回集合中的元素。yield關鍵字可以將當前方法轉換為一個迭代器,從而可以在每次循環迭代時返回一個元素。
在調用方代碼中使用foreach循環來遍歷集合中的元素。
下面是一個簡單示例,演示了如何使用迭代器遍歷一個整數集合:
using System;
using System.Collections;
using System.Collections.Generic;
public class MyCollection : IEnumerable<int>
{
private List<int> list = new List<int>();
public MyCollection()
{
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
}
public IEnumerator<int> GetEnumerator()
{
foreach (int i in list)
{
yield return i;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
class Program
{
static void Main()
{
MyCollection collection = new MyCollection();
foreach (int i in collection)
{
Console.WriteLine(i);
}
}
}
在這個示例中,MyCollection類實現了IEnumerable