【原】yield的最基本用法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Itcast.Mall.ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] strs = new string[] { "1", "2", "3" };
            IEnumerable<int> ints = GetInts(strs);
            foreach (var item in ints)
            {
                //测试,当item的值大于1后,下面GetInts里的foreach只会执行到这个对应的值,后面的就冻结,不执行了,节约资源;
                if (item > 1)
                {
                    break;
                }
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
        static IEnumerable<int> GetInts(string[] strs)
        {
            foreach (var item in strs)
            {
                Console.WriteLine(item.GetType());
                yield return Convert.ToInt32(item);
            }
        }
    }
}
时间: 2024-10-19 13:22:45

【原】yield的最基本用法的相关文章

yield self和instance_eval用法区别

class Foo def initialize(&block) instance_eval(&block) if block_given? end end class Foo def initialize yield self if block_given? end end x = Foo.new {|obj| def obj.foo() 'foo' end} x.foo By using instance_eval you're evaluating the block in the

python中yield与return的用法与区别

生成器:函数内带有yield关键字,那么,这个函数执行的结果就是生成器. 生成器,本质就是迭代器. return与,yield 1,return只能返回一次函数就彻底结束了.而yield能返回多次值. 2,yield把函数变成生成器---迭代器--->把iter,next方法给到函数了.为我们自己定义迭代器,提供了方便. 3,yield能保存函数在暂停,和继续下一次云形时的状态. 原文地址:https://www.cnblogs.com/catherine007/p/8309474.html

生成器中yield和next()的用法解析

生成器概念: python使用生成器对延迟操作提供了支持,就是需要的时候才产生结果,而不是产生结果. 生成器函数: 和其他函数编写方式相同,使用yield语句一次返回一次结果,在每个结果之间挂起当前状态,下次调用直接继续当前的状态. 生成器表达式: 类似于列表解析,不同的是他返回的是一个迭代对象而不是一个列表. #列表生成器: L = [x for x in range(5)] print(L) #简单生成器: G= (x for x in range(5)) print(next(G)) pr

java多线程系类:JUC原子类:03之AtomicLongArray原子类

概要 AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray这3个数组类型的原子类的原理和用法相似.本章以AtomicLongArray对数组类型的原子类进行介绍.内容包括:AtomicLongArray介绍和函数列表AtomicLongArray源码分析(基于JDK1.7.0_40)AtomicLongArray示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3514604.html

Python yield 使用浅析

Python yield 使用浅析 作者:廖 雪峰, 软件工程师, HP 2012 年 11 月 22 日 初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yield ?本文将由浅入深地讲解 yield 的概念和用法,帮助读者体会 Python 里 yield 简单而强大的功能. 您可能听说过,带有 yield 的函数在 Python 中被称之为 gen

JAVA多线程之JUC原子类

JUC原子类框架 JUC即是指:java.util.concurrent包. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkab- leReference ; 对象的属性修改类型: AtomicIntege

更简单的 iframe从光标处插入图片(失去焦点后仍然可以在原位置插入)

转载请注明: TheViper http://www.cnblogs.com/TheViper 前天晚上发现上一篇iframe从光标处插入图片(失去焦点后仍然可以在原位置插入里面的用法在ie6,7中无效,好悲催,当初只测试了ie8就以为在ie6,7上也没问题. 昨天在github上发现了一个很好的富文本编辑器wangEditor,一看名字就是中国人写的.这个编辑器好在支持ie6+,另外最重要的一点,它在ie6,7,8上都可以做到失去焦点后仍然可以在原位置插入图片,而且代码量很少.于是很好奇的看看

java 多线程系列---JUC原子类(二)之AtomicLong原子类

概要 AtomicInteger, AtomicLong和AtomicBoolean这3个基本类型的原子类的原理和用法相似.本章以AtomicLong对基本类型的原子类进行介绍. AtomicLong介绍和函数列表 AtomicLong是作用是对长整形进行原子操作.在32位操作系统中,64位的long 和 double 变量由于会被JVM当作两个分离的32位来进行操作,所以不具有原子性.而使用AtomicLong能让long的操作保持原子型. AtomicLong函数列表 // 构造函数 Ato

Java多线程系列---“JUC原子类”04之 AtomicLongArray原子类

转自:https://www.cnblogs.com/skywang12345/p/3514604.html(含部分修改) 概要 AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray这3个数组类型的原子类的原理和用法相似.本章以AtomicLongArray对数组类型的原子类进行介绍.内容包括: AtomicLongArray介绍和函数列表 AtomicLongArray源码分析(基于JDK1.7.0_40) AtomicLongAr