有一种列表容器(例如,我无法修改的 MyList),但仅声明了 GetCount() 和 At() 方法。
我想对 MyList 使用 foreach 语句,所以我编写了如下扩展方法。
public static class MyListHelper
{
public static IEnumerable<MyListItemType> GetEnumerator(this MyList list)
{
for (int i = 0; i < list.GetCount(); ++i )
{
yield return list.At(i);
}
}
}
但是,如果我编写“ foreach (MyListItemType i in list)... ”,编译器会吐出“MyList 不包含 GetEnumerator 的 piblic 定义”。
我可以直接调用 GetEnumerator() 方法并且工作正常。
我应该为此多做些什么?