zoukankan      html  css  js  c++  java
  • 自定义迭代器使用foreach

      foreach遍历集合好处很多,因为.net framework在foreach中已经做了try...catch和dispose的操作。那么如果想自定义一个集合并且该集合能使用foreach来遍历,一般做法是实现System.Collections.IEnumerable和System.Collections.IEnumerator接口。其实只要在集合类中实现无参数的返回IEnumerator的GetEnumerator方法就可以了。如下面代码

     1 public class MyList
    2 {
    3 private string[] list=null;
    4 public MyList(string[] sArg)
    5 {
    6 list = sArg;
    7 }
    8 public int Count{get{return list.Length;}}
    9 public IEnumerator GetEnumerator()
    10 {
    11 return new MyListEnumerator(list);
    12 }
    13 }
    14
    15 public class MyListEnumerator:IEnumerator
    16 {
    17 private string[] list=null;
    18 private int index=-1;
    19
    20 public MyListEnumerator(string[] sArg)
    21 {
    22 list = sArg;
    23 }
    24
    25 public string Current{get{return list[index];}}
    26 public bool MoveNext()
    27 {
    28 bool result = false;
    29 if(index+1<list.Length)
    30 {
    31 ++index ;
    32 result=true;
    33 }
    34 return result;
    35 }
    36 }

    这样MyList就可以通过foreach来遍历了。如果要用Linq那么MyList就要实现IEnumerable接口了。

    欢迎添加我的公众号一起深入探讨技术手艺人的那些事!

    如果您觉得本文的内容有趣就扫一下吧!捐赠互勉!
      

  • 相关阅读:
    mongodb 介绍
    mysql+mencached 大规模web应用程序首选
    Hadoop 安装部署
    Hadoop 快速入门
    盘点十大热门Linux服务器发行版
    NoSQL数据库探讨之一 - 为什么要用非关系数据库?
    也谈IT企业发展模式
    linux中的分区与格式化(五)
    linux文件系统维护(四)
    Meta标签详解(转)
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/2297882.html
Copyright © 2011-2022 走看看