枚举器
枚举器是指一个参数类型,有MoveNext()方法和Current属性,MoveNext方法可以将枚举器的游标指向下一个元素,Current属性存储着游标当前指向的参数。可以使用GetEnumerator()方法获得对象的枚举器,然后使用MoveNext()方法和Current属性遍历对象。
集合初始化
正常使用泛型集合时,只需要一步就可以完成集合的创建和赋值,但编译器还是会编译成使用.add添加元素的形式往集合里添加元素。
List<int> ll = new List<int>() {1,2,3 }; List<int> ll = new List<int>(); ll.Add(1); ll.Add(2); ll.Add(3);
正常我们访问集合时,会使用’变量[下标]‘这种形式访问集合中的某个元素,实际上,所有含有枚举器的对象都可以使用这种下标的形式访问对象。
迭代器
迭代器是指包含一个或多个yield语句的属性,方法,或索引器。
yield的含义是:当程序执行到yield语句时,会将控制权交到调用者手里,但包含yield语句的方法会保存执行状态,等下次执行方法时会继续上次的状态执行,状态的生命周期会绑定到枚举器上,当枚举器完成枚举动作后,状态才可以释放
yield return返回一个IEnumerable对象,可以通过GetEnumerator()方法获得对象的枚举器,然后遍历对象。
yield return不能出现在含有catch块的try、catch、finally子句里,但catch可以出现在只含try、finally的try块的语句里,枚举器的生命周期结束后,就会执行finally的内容。
迭代器可以嵌套组合使用
标签:迭代,ll,List,yield,枚举,集合 From: https://www.cnblogs.com/lrplrplrp/p/16750568.html