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);
            }
  • 相关阅读:
    基于RockMq 实现分布式事务
    开机启动脚本编写
    JS 校验笔记
    git 小计
    EasyExcel简单导入示例
    vue的rule中使用validator(异步请求)验证
    字符串、数值、布尔值、函数参数的解构赋值以及圆括号问题
    对象解构赋值
    数组的解构赋值与yield
    window10的cmd重置子系统ubuntu用户密码以及ubuntu设置密码切换用户
  • 原文地址:https://www.cnblogs.com/hubcarl/p/1706357.html
Copyright © 2011-2022 走看看