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";
            }

        }
    }

  • 相关阅读:
    牛客 小乐乐和25
    codeforces 1303 D 二进制瞎搞
    codeforces 1307 D 最短路bz+贪心
    codeforces 1316 C math
    codeforces 1328E LCA
    codeforces 1335 E2 思维
    codeforces 1335 E1 思维
    codeforces 1342 D 贪心+后缀和
    codeforces 1348D (思维+贪心)
    codeforces 1362 E 进制的性质
  • 原文地址:https://www.cnblogs.com/tiancai/p/6482942.html
Copyright © 2011-2022 走看看