• 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#使用yield关键字让自定义集合实现foreach遍历的方法

C#使用yield关键字让自定义集合实现foreach遍历的方法

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

通过本文主要向大家介绍了c#yield,c#yield return,c#yield是什么意思,yield关键字,yield等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

foreach遍历是C#常见的功能,而本文通过实例形式展现了C#使用yield关键字让自定义集合实现foreach遍历的方法。具体步骤如下:

一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口)

但是我们也可以通过使用yield关键字构建的迭代器方法来实现foreach的遍历,且自定义的集合不用实现IEnumerable接口

注意:虽然不用实现IEnumerable接口 ,但是迭代器的方法必须命名为GetEnumerator(),返回值也必须是IEnumerator类型。

实例代码以及简单注释说明如下:

class Person
{
    public string Name;
    public void SayHi()
    {
      Console.WriteLine("Hello: {0}",this.Name);
    }
}
//非常简单的自定义集合(- -简单到增加,删除,索引器等功能都没有实现) 该类没有实现IEnumerable接口
class PersonList
{
  Person[] pers =new Person[4];
  public PersonList()
  {
    pers[0] = new Person() { Name = "1" };
    pers[1] = new Person() { Name = "2" };
    pers[2] = new Person() { Name = "3" };
    pers[3] = new Person() { Name = "4" };

  }
//简单的迭代器方法
  public IEnumerator GetEnumerator()
  {
    foreach (Person item in pers)
    {
      //yield return 作用就是返回集合的一个元素,并移动到下一个元素上
      yield return item;
    }

  }
}
class Program
{  
  static void Main(string[] args)
  {
    PersonList list = new PersonList();
    foreach (Person item in list)
    {
      item.SayHi();
    }
    Console.ReadLine();    
  }
}

</div>

感兴趣的读者可以动手测试一下本文实例代码,相信会有新的收获。

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

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

  • C# yield在WCF中的错误使用(二)
  • C# yield关键字详解
  • C# yield在WCF中的错误用法(一)
  • C#通过yield实现数组全排列的方法
  • C#特性 迭代器(下) yield以及流的延迟计算
  • C#中yield return用法分析
  • C#使用yield关键字让自定义集合实现foreach遍历的方法
  • c# yield提高代码性能和可读性
  • C#中的yield关键字的使用方法介绍

相关文章

  • 2017-05-28VS2010写的程序在自己电脑可以运行、其他电脑上不能运行的解决方案
  • 2017-05-28Winform 显示Gif图片的实例代码
  • 2017-05-28C# FileStream文件读写详解
  • 2017-05-28C#通过委托调用Button单击事件的方法
  • 2017-05-28适合初学者开发的C#在线英汉词典小程序
  • 2017-05-28C#创建安全的字典(Dictionary)存储结构
  • 2017-05-28c#.net 常用函数和方法集
  • 2017-05-28测试stringbuilder运行效率示例
  • 2017-05-28C#实现xml文件的读取与写入简单实例
  • 2017-05-28C#实现复制文件夹中文件到另一个文件夹的方法

文章分类

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

最近更新的内容

    • C#实现任意数据类型转成json格式输出
    • C#控制Excel Sheet使其自适应页宽与列宽的方法
    • 使用revit api画垂直于风管的风管示例
    • C#命令模式(Command Pattern)实例教程
    • C#零基础学习理解委托
    • C#实现刷新桌面的方法
    • 浅谈C#手机号换成111XXXX1111 这种显示的解决思路
    • C#中Html.RenderPartial与Html.RenderAction的区别分析
    • C#中通过API实现的打印类 实例代码
    • C#实现利用反射简化给类字段赋值的方法

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

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