我对Ienumerable对象一无所知.Ienumarble接口在.net中的作用是什么?请告诉我它是否在建? .net中的每个类都自动实现Ienumarable接口吗?为什么需要实现可消除的接口?它包含的方法是什么?他们扮演什么角色。请详细解释。
答案 0 :(得分:1)
简而言之,IEnumerable公开了一个枚举器,它允许支持对非泛型集合的简单迭代。
它基本上允许对集合进行foreach循环,即:
foreach (Control control in this.Controls)
{
// Do something
}
在您自己的班级中使用IEnumable所需的唯一方法是GetEnumerator()
,它返回IEnumerator
。
您返回的IEnumerator必须是实现以下方法的类:
void Reset();
object Current();
bool MoveNext();
IEnumerator类的基本示例,取自here:
private class ClassEnumerator : IEnumerator
{
private ClassList _classList;
private int _index;
public ClassEnumerator(ClassList classList)
{
_classList = classList;
_index = -1;
}
#region IEnumerator Members
public void Reset()
{
_index = -1;
}
public object Current
{
get
{
return _classList._students[_index];
}
}
public bool MoveNext()
{
_index++;
if (_index >= _classList._students.Count)
return false;
else
return true;
}
#endregion
}