• 自定义迭代器使用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接口了。

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

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

  • 相关阅读:
    松软科技web课堂:字符串方法和属性
    松软科技web课堂:JavaScript 事件
    松软科技前端课堂:JavaScript 对象
    松软科技web课堂:JavaScript 数据类型
    MVN TEST指定运行脚本
    Cucumber语法格式
    Maven pom文件标签解析大全
    测试用例自动转换成自动化脚本
    Cucumber使用中问题
    Cucumber常用关键字
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/2297882.html
Copyright © 2020-2023  润新知