一.生成器 1.定义(generator):一边循环一边计算下一个元素的机制/算法 2.满三个条件 (1)每次调用都能产生出for循环需要的下一个元素 (2)如果达到最后一个后,能够爆出StopIteration异常 (3)可以被next函数调用 3.如何生成一个生成器 (1)直接使用 l = [x*x for x in range(5)]#放在中括号中就是列表生成器 g = (x*x for x in range(5))#放在小括号中就是生成器 print(type(l)) print(ty…
foreach 依赖 IEnumerable. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, 以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束. 期间GetList()方法只执行一次. foreach (var a in GetList()) { ... } 相当于 var a; IEnumerator e = GetList().GetEnumerator(); while (…