• C# 中实现 foreach 功能


    1. MySplit 类
        /// <summary>
        
    /// MySplit 类
        
    /// </summary>
        public class MySplit : IEnumerable
        {
            
    private string[] elements;

            
    public MySplit(string source, char[] delimiters)
            {
                elements 
    = source.Split(delimiters);
            }

            IEnumerator IEnumerable.GetEnumerator()
            {
                
    return new MyEnumerator(this);
            }

            
    #region 在嵌套类中实现 IEnumerator 接口
            
    /// <summary>
            
    /// 在嵌套类中实现 IEnumerator 接口,以便以后方便创建多个枚举
            
    /// </summary>
            public class MyEnumerator : IEnumerator
            {
                
    private int position = -1;
                
    private MySplit t;

                
    public MyEnumerator(MySplit t)
                {
                    
    this.t = t;
                }

                
    public bool MoveNext()
                {
                    
    if (position < t.elements.Length - 1)
                    {
                        position
    ++;
                        
    return true;
                    }
                    
    else
                    {
                        
    return false;
                    }
                }

                
    public void Reset()
                {
                    position 
    = -1;
                }

                
    object IEnumerator.Current
                {
                    
    get
                    {
                        
    try
                        {
                            
    return t.elements[position];
                        }
                        
    catch (IndexOutOfRangeException)
                        {
                            
    throw new InvalidOperationException();
                        }
                    }
                }
            }
            
    #endregion
        }

    2. 使用
        MySplit mySplit = new MySplit("大豆男生: I Love You!"new char[] { ' ''-' });
        
    foreach (string item in mySplit)
        {
            Console.WriteLine(item);
        }

    3. 输出结果
       大豆男生:
       I
       Love
       You!

    相关文章:C# 中实现索引指示器

    本文地址:http://www.cnblogs.com/anjou/archive/2007/07/05/807357.html

  • 相关阅读:
    Java开发中回车换行符的区别
    Eclipse中快捷键使用
    数组基础常用方法
    获取一组数组中最大值和最小值
    解决Java工程URL路径中含有中文的情况
    python录音,无声自动停止,或定时停止
    ChatterBot人工智能,聊天机器人,无坑指南(安装,使用)(2.使用篇)
    ChatterBot机器学习,聊天机器人,无坑指南(安装,使用)(1.安装篇)
    python播放mp3最佳方法
    自动天气
  • 原文地址:https://www.cnblogs.com/anjou/p/807357.html
Copyright © 2020-2023  润新知