• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中foreach原理以及模拟的实现

C#中foreach原理以及模拟的实现

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#中foreach的用法,c#中foreach,c#跳出foreach,c#foreach,c#foreach用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#中foreach原理以及模拟的实现方法,分享给大家供大家参考。具体如下:

{
        string[] names = { "小杨", "科比布莱恩特", "凯文杜兰特", "卡门安东尼" }; //在Person类里面定义一个字符串数组,以便用来模仿对象的索引访问

        public int Count { get { return names.Length; } }    //可以通过对象访问此属性
    
        public string this[int index]    //定义一个索引器
        {
            get { return names[index]; }
        }


        public IEnumerator GetEnumerator()
        {
            return new MyClass(names);             //实际上通过此方法就是返回一个可以实现循环的类的对象 
                                                   // 用他的对象来移动索引
        }
}

public class MyClass :IEnumerator
{
  public MyClass(string[] names) //一个参数的构造函数,用来和要遍历的类的进行关联
  {
      name = names;
  }
  private string[] name;  //用此字段来存放接收过来的数组
  int index = -1;
  public object Current   //获取当前索引的元素的值
  {
      get
      {
   if (index<0)    //准备状态是-1,开始循环了在MoveNext中加1
   {
       return null;
   }
   else
   {
       return name[index];
   }
      }
  }
  public bool MoveNext()
  {
      ++index;  //每调用此方法就将索引往下+1
      if (index<name.Length)
      {
   return true;
      }
      else
      {
   return false;
      }
  }
  public void Reset()
  {
     index=-1;
  }
}</div>

在主方法里面:

{
        static void Main(string[] args)
        {
            Person p = new Person();
            //for (int i = 0; i < p.Count; i++)
            //{
            //    Console.WriteLine(p[i]);
            //}
            foreach (string item in p)
            {
                Console.WriteLine(item);
            }
            //实际执行foreach就相当于执行下面几句话:
            Console.WriteLine("==================================================");
            IEnumerator p1 = p.GetEnumerator();
            while (p1.MoveNext())
            {
                string str=(string)p1.Current;
                Console.WriteLine(str);
            }
            Console.ReadKey();
        }
}</div>

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#检查foreach判读是否为null的方法
  • C#使用foreach循环遍历数组完整实例
  • C#使用foreach遍历哈希表(hashtable)的方法
  • C#使用foreach语句简单遍历数组的方法
  • C#中foreach语句使用break暂停遍历的方法
  • C#使用foreach语句遍历二维数组的方法
  • C#使用foreach语句搜索数组元素的方法
  • C#使用foreach语句遍历堆栈(Stack)的方法
  • C#使用foreach语句遍历队列(Queue)的方法
  • C#中foreach原理以及模拟的实现

相关文章

  • 2017-05-28基于.net中突破每客户端两个http连接限制的详细介绍
  • 2017-05-28C#定位txt指定行的方法小例子
  • 2017-05-28遍历Hashtable 的几种方法
  • 2017-05-28WMI获取硬件信息封装函数方法(联想台式机出厂编号 CPUID BIOS序列号 硬盘信息 显卡信息 MAC地址)
  • 2017-05-28C#导入导出EXCEL文件的代码实例
  • 2017-05-28c# 实现窗体拖到屏幕边缘自动隐藏
  • 2017-05-28npoi2.0将datatable对象转换为excel2007示例
  • 2017-05-28C#获取程序文件相关信息的方法
  • 2017-05-28c#文件助手类分享(读取文件内容 操作日志文件)
  • 2017-05-28C# winform编程中响应回车键的实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现关机重启及注销实例代码
    • C#使用foreach语句遍历堆栈(Stack)的方法
    • C#关于反射加载的问题
    • C#列表框、复选列表框、组合框的用法实例
    • C#生成随机字符串的实例
    • 通过C#实现发送自定义的html格式邮件
    • 浅谈C#各种数组直接的数据复制/转换
    • 详解C#编程中.NET的弱事件模式
    • C#命令模式用法实例
    • 完成OSS.Http底层HttpClient重构封装 支持标准库

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有