C# 2.0学习之--Yield

翻译 2006年06月23日 18:52:00

//Copyright (C) Microsoft Corporation.  All rights reserved.

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

namespace Yield
{
    class Yield
    {
        public static class NumberList
        {
            // Create an array of integers.
            public static int[] ints = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 };

            // Define a property that returns only the even numbers.
            public static IEnumerable<int> GetEven()
            {
                // Use yield to return the even numbers in the list.
                foreach (int i in ints)
                    if (i % 2 == 0)
                        yield return i;
            }

            // Define a property that returns only the even numbers.
            public static IEnumerable<int> GetOdd()
            {
                // Use yield to return only the odd numbers.
                foreach (int i in ints)
                    if (i % 2 == 1)
                        yield return i;
            }
        }

        static void Main(string[] args)
        {

            // Display the even numbers.
            Console.WriteLine("Even numbers");
            foreach (int i in NumberList.GetEven())
                Console.WriteLine(i);

            // Display the odd numbers.
            Console.WriteLine("Odd numbers");
            foreach (int i in NumberList.GetOdd())
                Console.WriteLine(i);
        }
    }
}

 


 

csc Yield.cs
Yield

C# Yield

使用一个 yield return 语句返回每个元素一个节点。 使用 foreach 语句或 LINQ 查询,则使用迭代器方法。 foreach 循环的每次迭代调用迭代器方法。 当 yield ret...
  • itmaxin
  • itmaxin
  • 2016年01月15日 09:58
  • 692

C# yield关键字详解

对于yield关键字我们首先看一下msdn的解释: 如果你在语句中使用 yield 关键字,则意味着它在其中出现的方法、运算符或 get 访问器是迭代器。 通过使用 yield 定义迭代器,可在实现...
  • cbbbc
  • cbbbc
  • 2015年12月09日 10:32
  • 4249

C# yield关键字的用法

yield关键字的作用是将当前集合中的元素立即返回。 1.返回元素用yield return;(一次一个的返回) 2.结束返回用yield break;(终止迭代) 3....
  • w200221626
  • w200221626
  • 2016年09月05日 15:40
  • 901

C#yield return和yield break函数执行逻辑理解

1.使用要求:  1)你不能在具有以下特点的方法中包含 yield return 或 yield break 语句:     匿名方法。 有关详细信息,请参阅匿名方法(C# 编程指南)。     包含...
  • Blues1021
  • Blues1021
  • 2015年10月01日 13:07
  • 8611

C#中yield用法

yield 关键字向编译器指示它所在的方法是迭代器块。编译器生成一个类来实现迭代器块中表示的行为。在迭代器块中,yield 关键字与 return 关键字结合使用,向枚举器对象提供值。这是一个返回...
  • albert528108
  • albert528108
  • 2014年03月08日 08:34
  • 1151

Unity协程的yield & C#的yield关键字

Unity协程的yield & C#的yield关键字 1.Unity协程: 这里说的是Unity中通过StartCoroutine开启IEnumerator协程里的yield相关: 1.yield...
  • qq_33337811
  • qq_33337811
  • 2017年06月22日 17:21
  • 600

C#中yield关键字用法(以及delegate/Lambde/Linq之间的关系)

C#中yield关键字用法(以及delegate/Lambde/Linq之间的关系)/// /// 未使用yield关键字过滤数据 /// //public static IEn...
  • cadenzasolo
  • cadenzasolo
  • 2016年02月11日 14:57
  • 723

【C#学习】lambda表达式

C# 中 Lambda表达式作为一种内联函数使用,可以将一个Lambda表达式赋给一个委托(C# 3.0+)。"Lambda表达式"是一个特殊的匿名函数,是一种高效的类似于函数式编程的表达式,Lamb...
  • csdn_chai
  • csdn_chai
  • 2017年08月20日 15:07
  • 88

C# 2.0 新特性之迭代器, Yield Return

本文摘自:http://www.cnblogs.com/montaque/archive/2005/04/21/142844.htmlC# 2.0 可能讨论比较多的是泛型, 其次可能就是迭代器,匿名方...
  • VS_URL
  • VS_URL
  • 2012年07月23日 15:15
  • 1365

C# yield return 的作用

msdn介绍: http://msdn.microsoft.com/zh-cn/library/9k7k7cf0.aspx DEMO源码: using System; using System....
  • linjf520
  • linjf520
  • 2014年02月12日 18:40
  • 10762
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 2.0学习之--Yield
举报原因:
原因补充:

(最多只允许输入30个字)