枚举(一文详解枚举器和迭代器)
2026-02-12 16:440评论
发布新闻

nerror="javas
cript:errorimg.call(this);">

nerror="javas
cript:errorimg.call(this);">
责编 | 胡巍巍
枚举器
枚举器(enumerator)是一个只读的作用于序列值的只能向前的游标,并且实现了System.Collections.IEnumeratar 或者 System.Collections.Generic.IEnumeratar<T>接口的对象。
class EnumeratorDemo : IEnumerator
public object Current
get { return true; }
public bool MoveNext
return false;
public void Reset
//more code
}
可枚举对象可以是实现了Ienumerable或Ienumerable<T>的对象,也可以是具有名为GetEnumerator方法并且方法返回一个枚举器的对象。同样我们通过代码来看一下怎么定义可枚举对象:
class Enumerable : IEnumerable
public IEnumerator GetEnumerator
IEnumerable<string> myEnumerable = ;
return myEnumerable.GetEnumerator;
}
static void Main(string[] args)
using (var item = "abcdefg".GetEnumerator)
while (item.MoveNext)
var _char = item.Current;
Console.WriteLine(_char);
}
Console.Read;
讲解一下上述代码,字符串是可枚举对象,因此可以通过 GetEnumerator方法获得枚举器,然后使用枚举器的MoveNext防火阀做 while语句的执行条件,MoveNext法在存在下一个值得时候会返回True,当不存在的时候返回False。

小知识
List<string> strList = new List<string> { "张三", "李四", "王五", "赵六" };