zoukankan      html  css  js  c++  java
  • //yield return用于无缝实现迭代模式。

    代码
     public class YieldReturn
        {
            
    //yield return用于无缝实现迭代模式。
       
            
    string[] strArr;
            
    public YieldReturn(params string[] arr)
            {
                strArr 
    = new string[arr.Length];
                arr.CopyTo(strArr, 
    0);
                
            }
            
           
            
    //-------一个枚举对象可以对应多个枚举
            /// <summary>
            
    /// 反序输出
            
    /// </summary>
            public IEnumerable<string> Reverse
            {
                
    get
                {
                    
    for (int i = strArr.Length - 1; i >= 0; i--)
                        
    yield return strArr[i];
                }
            }
            
    /// <summary>
            
    /// 顺序输出
            
    /// </summary>
            public IEnumerable<string> PosEven
            {
                
    get
                {
                    
    for (int i=0;i<strArr.Length; i++)
                        
    yield return strArr[i];
                }
            }
            
    public IEnumerable<string> Concat
            {
                
    get
                {
                    
    foreach (string s in Reverse)
                        
    yield return s;
                    
    foreach (string s in PosEven)
                        
    yield return s;
                }
            }
            
        }
     实现:
          
    public static void yieldreturn()
            {
                YieldReturn yr 
    = new YieldReturn("aaa""bbb""ccc");
                Console.WriteLine(
    "-----Reverse:");
                
    foreach (string s in yr.Reverse)
                    Console .WriteLine (s);
                Console.WriteLine(
    "-----PosEven:");
                
    foreach (string s in yr.PosEven)
                    Console.WriteLine(s);
                Console.WriteLine(
    "-----Concat:");
                
    foreach (string s in yr.Concat)
                    Console.WriteLine(s);
            }
  • 相关阅读:
    再见,我的二零一七
    Tomcat 源码分析(二)——Request处理全过程
    帅案之上——作为开发者的远见与卓识
    Tomcat 源码分析(一)——启动与生命周期组件
    从代码质量谈起
    Java设计模式(四)——再谈观察者模式
    你所不了解的五条面试忠告
    见微知著——从自定义类型的operator==说起
    编码、散列与加解密
    数据结构与算法(c++)——双缓存队列
  • 原文地址:https://www.cnblogs.com/hubcarl/p/1706357.html
Copyright © 2011-2022 走看看