zoukankan      html  css  js  c++  java
  • C#中YieldReturn的用法

    Yield Return 和 Yield Break 的出现是为了简化迭代器。

    类如果能被遍历则必须有IEnumerator<string> GetEnumerator() 方法, 并有用Yield Return

    方法如果能被遍历则返回类型为 IEnumerable<string>,并有用Yield Return

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace TestYield
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                foreach (string v in new Animal())
                {
                    Console.WriteLine(v);
                }
    
    
                foreach (string v in getList())
                {
                    Console.WriteLine(v);
                }
                Console.ReadLine();
            }
    
    
            static IEnumerable<string> getList()
            {
                yield return "cccc";
                yield return "dddd";
            }
          
        }
    
    
        public class Animal {
           //类迭代必须要有的方法,使用Yield简化了迭代的实现
          public IEnumerator<string> GetEnumerator()
            {
                yield return "aaaaa";
                yield return "bbbbb";
            }
    
        }
    }

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

    namespace TestYield
    {
        class Program
        {
            static void Main(string[] args)
            {

                foreach (string v in new Animal())
                {
                    Console.WriteLine(v);
                }


                foreach (string v in getList())
                {
                    Console.WriteLine(v);
                }
                Console.ReadLine();
            }


            static IEnumerable<string> getList()
            {
                yield return "cccc";
                yield return "dddd";
            }
          
        }


        public class Animal {

          public IEnumerator<string> GetEnumerator()
            {
                yield return "aaaaa";
                yield return "bbbbb";
            }

        }
    }

  • 相关阅读:
    How do I change a .txt file to a .c file?
    [CQOI2007]余数求和
    CSP-J总结&题解
    【CSP游记S】
    [LuoguP1462]通往奥格瑞玛的道路
    归并排序——逆序对
    [NOIP 2011]选择客栈
    [二分图初步]【模板】二分图匹配,匈牙利算法
    [NOIP 2018]旅行
    黑魔法师之门 (magician)-并查集
  • 原文地址:https://www.cnblogs.com/tiancai/p/6482942.html
Copyright © 2011-2022 走看看