这是有关的文档IEnumerator
。它们用于获取列表的值,其中长度不一定要提前知道(即使可以知道)。这个词来自enumerate
,意思是“数一数二或一一列举”。
IEnumerator
并且IEnumerator<T>
由所有提供IEnumerable
和IEnumerable<T>
接口经由(后者提供两者)在.NET GetEnumerator()
。这很重要,因为该foreach
语句旨在通过这些接口方法直接与枚举器一起使用。
因此,例如:
IEnumerator enumerator = enumerable.GetEnumerator();
while (enumerator.MoveNext())
{
object item = enumerator.Current;
}
成为:
foreach(object item in enumerable)
{
}
对于您的特定情况,.NET中几乎所有集合都实现IEnumerable
。因此,您可以执行以下操作:
public IEnumerator Enumerate(IEnumerable enumerable)
{
List<string> list = new List<string>();
foreach(string value in enumerable)
{
list.Add(value + "roxxors");
}
return list.GetEnumerator();
}