zoukankan      html  css  js  c++  java
  • foreach遍历访问的对象必须实现IEnumerable 或声明GetEnumerator

    需要实现一个对象为可遍历的对象,必须实现IEnumerable或声明GetEnumerator 方法,其中,IEnumerable 不是必须实现,但是GetEnumerator 方法则必须声明:

    例如,先声明一个Item类,该类用于遍历的实体

    //先声明一个Item的对象,用于遍历的实体对象
        public class Item
        {
            public int Id;
            public string Name;
            public int Price;
    
            public Item(int id, string name, int price)
            {
                Id = id;
                Name = name;
                Price = price;
            }
        }

    接下来我们实现 IEnumerable ,同时实现 GetEnumerator 方法,注意这个接口不是一定要实现,但是GetEnumerator 一定要声明。

    //接下来的类就是要暴露给外部调用,实现了IEnumerable 的itemList
    
        public class ItemList : IEnumerable// 这里也可以不实现 IEnumerable,但GetEnumerator必须实现
        {
            private Item[] items;
    
            public int Count
            {
                get { return items.Length; }//拿到数组中的count
            }
    
            public ItemList(Item[] _items)
            {
                items = _items;
            }
    //必须实现GetEnumerator
            public IEnumerator GetEnumerator()
            {
                for (int i = 0; i < items.Length; i++)
                {
                    yield return items[i];//通过yield 将通过index找到的item返回到迭代器foreach对象中
                }
            }
        }

    在Program.cs 中调用,遍历

    ItemList itemList = new ItemList(new Item[] { new Item(1, "apple", 3), new Item(2, "banana", 3) });
    foreach (var item in itemList)
    {
        Console.WriteLine(item);
    }
  • 相关阅读:
    vue学习指南:第六篇(详细)
    Android Stuido代码混淆
    Android 2018最新的三方库
    使用Git上传代码到Github仓库
    android展示注册进度效果源码
    JPTabBar 详细介绍
    利用HTML5和echarts开发大数据展示及大屏炫酷统计系统
    Android Studio Git 分支使用实践
    RecyclerView的Item的单击事件
    Android实用代码
  • 原文地址:https://www.cnblogs.com/vpersie2008/p/12219188.html
Copyright © 2011-2022 走看看